@pie-element/matrix 4.1.1 → 4.1.2-next.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 (117) hide show
  1. package/configure.js +2 -0
  2. package/controller.js +1 -0
  3. package/dist/author/HeaderCommon.d.ts +12 -0
  4. package/dist/author/HeaderCommon.js +20 -0
  5. package/dist/author/Main.d.ts +27 -0
  6. package/dist/author/Main.js +134 -0
  7. package/dist/author/MatrixColumnsSizeHeaderInput.d.ts +21 -0
  8. package/dist/author/MatrixColumnsSizeHeaderInput.js +39 -0
  9. package/dist/author/MatrixLabelEditableButton.d.ts +27 -0
  10. package/dist/author/MatrixLabelEditableButton.js +191 -0
  11. package/dist/author/MatrixLabelTypeHeaderInput.d.ts +21 -0
  12. package/dist/author/MatrixLabelTypeHeaderInput.js +96 -0
  13. package/dist/author/MatrixRowsSizeHeaderInput.d.ts +21 -0
  14. package/dist/author/MatrixRowsSizeHeaderInput.js +39 -0
  15. package/dist/author/MatrixValues.d.ts +29 -0
  16. package/dist/author/MatrixValues.js +156 -0
  17. package/dist/author/NumberInput.d.ts +20 -0
  18. package/dist/author/NumberInput.js +61 -0
  19. package/dist/author/columnLabelsGenerator.d.ts +11 -0
  20. package/dist/author/columnLabelsGenerator.js +101 -0
  21. package/dist/author/defaults.d.ts +88 -0
  22. package/dist/author/defaults.js +56 -0
  23. package/dist/author/index.d.ts +31 -0
  24. package/dist/author/index.js +66 -0
  25. package/dist/author/isNumeric.d.ts +10 -0
  26. package/dist/author/isNumeric.js +4 -0
  27. package/dist/author/matrixEntities.d.ts +17 -0
  28. package/dist/author/matrixEntities.js +12 -0
  29. package/dist/browser/Radio-DJhIYuTn.js +10138 -0
  30. package/dist/browser/Radio-DJhIYuTn.js.map +1 -0
  31. package/dist/browser/author/index.js +39771 -0
  32. package/dist/browser/author/index.js.map +1 -0
  33. package/dist/browser/controller/index.js +60 -0
  34. package/dist/browser/controller/index.js.map +1 -0
  35. package/dist/browser/delivery/index.js +205 -0
  36. package/dist/browser/delivery/index.js.map +1 -0
  37. package/dist/browser/dist-DHz-aOnW.js +92 -0
  38. package/dist/browser/dist-DHz-aOnW.js.map +1 -0
  39. package/dist/browser/matrix.css +2 -0
  40. package/dist/controller/defaults.d.ts +19 -0
  41. package/dist/controller/defaults.js +17 -0
  42. package/dist/controller/index.d.ts +19 -0
  43. package/dist/controller/index.js +46 -0
  44. package/dist/delivery/ChoiceInput.d.ts +25 -0
  45. package/dist/delivery/ChoiceInput.js +36 -0
  46. package/dist/delivery/Main.d.ts +23 -0
  47. package/dist/delivery/Main.js +37 -0
  48. package/dist/delivery/Matrix.d.ts +29 -0
  49. package/dist/delivery/Matrix.js +81 -0
  50. package/dist/delivery/index.d.ts +22 -0
  51. package/dist/delivery/index.js +45 -0
  52. package/dist/delivery/session-updater.d.ts +9 -0
  53. package/dist/index.d.ts +1 -0
  54. package/dist/index.iife.d.ts +8 -0
  55. package/dist/index.iife.js +164 -0
  56. package/dist/index.js +2 -0
  57. package/dist/runtime-support.d.ts +12 -0
  58. package/dist/runtime-support.js +12 -0
  59. package/package.json +84 -19
  60. package/CHANGELOG.json +0 -1
  61. package/CHANGELOG.md +0 -1409
  62. package/LICENSE.md +0 -5
  63. package/README.md +0 -59
  64. package/configure/CHANGELOG.json +0 -1
  65. package/configure/CHANGELOG.md +0 -1335
  66. package/configure/lib/HeaderCommon.js +0 -28
  67. package/configure/lib/HeaderCommon.js.map +0 -1
  68. package/configure/lib/Main.js +0 -179
  69. package/configure/lib/Main.js.map +0 -1
  70. package/configure/lib/MatrixColumnsSizeHeaderInput.js +0 -56
  71. package/configure/lib/MatrixColumnsSizeHeaderInput.js.map +0 -1
  72. package/configure/lib/MatrixLabelEditableButton.js +0 -224
  73. package/configure/lib/MatrixLabelEditableButton.js.map +0 -1
  74. package/configure/lib/MatrixLabelTypeHeaderInput.js +0 -98
  75. package/configure/lib/MatrixLabelTypeHeaderInput.js.map +0 -1
  76. package/configure/lib/MatrixRowsSizeHeaderInput.js +0 -56
  77. package/configure/lib/MatrixRowsSizeHeaderInput.js.map +0 -1
  78. package/configure/lib/MatrixValues.js +0 -217
  79. package/configure/lib/MatrixValues.js.map +0 -1
  80. package/configure/lib/NumberInput.js +0 -77
  81. package/configure/lib/NumberInput.js.map +0 -1
  82. package/configure/lib/columnLabelsGenerator.js +0 -49
  83. package/configure/lib/columnLabelsGenerator.js.map +0 -1
  84. package/configure/lib/defaults.js +0 -86
  85. package/configure/lib/defaults.js.map +0 -1
  86. package/configure/lib/index.js +0 -98
  87. package/configure/lib/index.js.map +0 -1
  88. package/configure/lib/isNumeric.js +0 -11
  89. package/configure/lib/isNumeric.js.map +0 -1
  90. package/configure/lib/matrixEntities.js +0 -16
  91. package/configure/lib/matrixEntities.js.map +0 -1
  92. package/configure/package.json +0 -28
  93. package/controller/CHANGELOG.json +0 -1
  94. package/controller/CHANGELOG.md +0 -88
  95. package/controller/lib/defaults.js +0 -17
  96. package/controller/lib/defaults.js.map +0 -1
  97. package/controller/lib/index.js +0 -96
  98. package/controller/lib/index.js.map +0 -1
  99. package/controller/package.json +0 -17
  100. package/docs/config-schema.json +0 -1475
  101. package/docs/config-schema.json.md +0 -1093
  102. package/docs/demo/config.js +0 -8
  103. package/docs/demo/generate.js +0 -9
  104. package/docs/demo/index.html +0 -1
  105. package/docs/demo/session.js +0 -6
  106. package/docs/pie-schema.json +0 -1
  107. package/docs/pie-schema.json.md +0 -1
  108. package/lib/ChoiceInput.js +0 -59
  109. package/lib/ChoiceInput.js.map +0 -1
  110. package/lib/Main.js +0 -42
  111. package/lib/Main.js.map +0 -1
  112. package/lib/Matrix.js +0 -104
  113. package/lib/Matrix.js.map +0 -1
  114. package/lib/index.js +0 -80
  115. package/lib/index.js.map +0 -1
  116. package/lib/session-updater.js +0 -10
  117. package/lib/session-updater.js.map +0 -1
@@ -1,8 +0,0 @@
1
- const { model } = require('./generate');
2
-
3
- module.exports = {
4
- elements: {
5
- 'matrix-element': '../..',
6
- },
7
- models: [model('1', 'matrix-element')],
8
- };
@@ -1,9 +0,0 @@
1
- exports.model = (id, element) => ({
2
- id,
3
- element,
4
- labelType: 'agreement',
5
- rowLabels: ['I\'m interested in politics.', 'I\'m interested in economics.'],
6
- columnLabels: ['Disagree', 'Unsure', 'Agree'],
7
- matrixValues: {},
8
- prompt: 'How interested are you in the following domains?',
9
- });
@@ -1 +0,0 @@
1
- <matrix-element pie-id="1"> </matrix-element>
@@ -1,6 +0,0 @@
1
- module.exports = [
2
- {
3
- id: '1',
4
- element: 'matrix-element',
5
- },
6
- ];
@@ -1 +0,0 @@
1
- {}
@@ -1 +0,0 @@
1
- #
@@ -1,59 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _styles = require("@mui/material/styles");
11
- var _renderUi = require("@pie-lib/render-ui");
12
- var _Radio = _interopRequireDefault(require("@mui/material/Radio"));
13
- const StyledRadio = (0, _styles.styled)(_Radio.default)({
14
- '&.MuiRadio-root': {
15
- color: `var(--choice-input-color, ${_renderUi.color.text()})`
16
- },
17
- '&.MuiRadio-root.Mui-checked': {
18
- color: `var(--choice-input-selected-color, ${_renderUi.color.primary()})`
19
- },
20
- '&.MuiRadio-root.Mui-disabled': {
21
- color: `var(--choice-input-disabled-color, ${_renderUi.color.defaults.DISABLED})`
22
- }
23
- });
24
- const ChoiceInput = props => {
25
- const {
26
- disabled,
27
- checked,
28
- matrixKey,
29
- matrixValue,
30
- onChange
31
- } = props;
32
- const onChangeWrapper = () => {
33
- if (disabled) {
34
- return;
35
- }
36
- onChange({
37
- matrixValue,
38
- matrixKey
39
- });
40
- };
41
- return /*#__PURE__*/_react.default.createElement(StyledRadio, {
42
- checked: checked,
43
- onChange: onChangeWrapper,
44
- disabled: disabled
45
- });
46
- };
47
- ChoiceInput.propTypes = {
48
- checked: _propTypes.default.bool.isRequired,
49
- disabled: _propTypes.default.bool.isRequired,
50
- matrixValue: _propTypes.default.number.isRequired,
51
- matrixKey: _propTypes.default.string.isRequired,
52
- onChange: _propTypes.default.func.isRequired
53
- };
54
- ChoiceInput.defaultProps = {
55
- checked: false,
56
- disabled: false
57
- };
58
- var _default = exports.default = ChoiceInput;
59
- //# sourceMappingURL=ChoiceInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChoiceInput.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_renderUi","_Radio","StyledRadio","styled","Radio","color","text","primary","defaults","DISABLED","ChoiceInput","props","disabled","checked","matrixKey","matrixValue","onChange","onChangeWrapper","default","createElement","propTypes","PropTypes","bool","isRequired","number","string","func","defaultProps","_default","exports"],"sources":["../src/ChoiceInput.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\n\nimport { color } from '@pie-lib/render-ui';\nimport Radio from '@mui/material/Radio';\n\nconst StyledRadio = styled(Radio)({\n '&.MuiRadio-root': {\n color: `var(--choice-input-color, ${color.text()})`,\n },\n '&.MuiRadio-root.Mui-checked': {\n color: `var(--choice-input-selected-color, ${color.primary()})`,\n },\n '&.MuiRadio-root.Mui-disabled': {\n color: `var(--choice-input-disabled-color, ${color.defaults.DISABLED})`,\n },\n});\n\nconst ChoiceInput = (props) => {\n const { disabled, checked, matrixKey, matrixValue, onChange } = props;\n\n const onChangeWrapper = () => {\n if (disabled) {\n return;\n }\n onChange({\n matrixValue,\n matrixKey,\n });\n };\n\n return (\n <StyledRadio\n checked={checked}\n onChange={onChangeWrapper}\n disabled={disabled}\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 onChange: PropTypes.func.isRequired,\n};\n\nChoiceInput.defaultProps = {\n checked: false,\n disabled: false,\n};\n\nexport default ChoiceInput;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,MAAMK,WAAW,GAAG,IAAAC,cAAM,EAACC,cAAK,CAAC,CAAC;EAChC,iBAAiB,EAAE;IACjBC,KAAK,EAAE,6BAA6BA,eAAK,CAACC,IAAI,CAAC,CAAC;EAClD,CAAC;EACD,6BAA6B,EAAE;IAC7BD,KAAK,EAAE,sCAAsCA,eAAK,CAACE,OAAO,CAAC,CAAC;EAC9D,CAAC;EACD,8BAA8B,EAAE;IAC9BF,KAAK,EAAE,sCAAsCA,eAAK,CAACG,QAAQ,CAACC,QAAQ;EACtE;AACF,CAAC,CAAC;AAEF,MAAMC,WAAW,GAAIC,KAAK,IAAK;EAC7B,MAAM;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,SAAS;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAGL,KAAK;EAErE,MAAMM,eAAe,GAAGA,CAAA,KAAM;IAC5B,IAAIL,QAAQ,EAAE;MACZ;IACF;IACAI,QAAQ,CAAC;MACPD,WAAW;MACXD;IACF,CAAC,CAAC;EACJ,CAAC;EAED,oBACEnB,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACjB,WAAW;IACVW,OAAO,EAAEA,OAAQ;IACjBG,QAAQ,EAAEC,eAAgB;IAC1BL,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAEDF,WAAW,CAACU,SAAS,GAAG;EACtBP,OAAO,EAAEQ,kBAAS,CAACC,IAAI,CAACC,UAAU;EAClCX,QAAQ,EAAES,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCR,WAAW,EAAEM,kBAAS,CAACG,MAAM,CAACD,UAAU;EACxCT,SAAS,EAAEO,kBAAS,CAACI,MAAM,CAACF,UAAU;EACtCP,QAAQ,EAAEK,kBAAS,CAACK,IAAI,CAACH;AAC3B,CAAC;AAEDb,WAAW,CAACiB,YAAY,GAAG;EACzBd,OAAO,EAAE,KAAK;EACdD,QAAQ,EAAE;AACZ,CAAC;AAAC,IAAAgB,QAAA,GAAAC,OAAA,CAAAX,OAAA,GAEaR,WAAW","ignoreList":[]}
package/lib/Main.js DELETED
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _react = _interopRequireDefault(require("react"));
11
- var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _renderUi = require("@pie-lib/render-ui");
13
- var _Matrix = _interopRequireDefault(require("./Matrix"));
14
- class Main extends _react.default.Component {
15
- render() {
16
- const {
17
- model,
18
- onSessionChange,
19
- session
20
- } = this.props;
21
- const {
22
- extraCSSRules
23
- } = model;
24
- return /*#__PURE__*/_react.default.createElement(_renderUi.PreviewLayout, {
25
- extraCSSRules: extraCSSRules
26
- }, /*#__PURE__*/_react.default.createElement(_Matrix.default, (0, _extends2.default)({}, model, {
27
- session: session,
28
- onSessionChange: onSessionChange
29
- })));
30
- }
31
- }
32
- (0, _defineProperty2.default)(Main, "propTypes", {
33
- model: _propTypes.default.object,
34
- session: _propTypes.default.object,
35
- onSessionChange: _propTypes.default.func
36
- });
37
- (0, _defineProperty2.default)(Main, "defaultProps", {
38
- model: {},
39
- session: {}
40
- });
41
- var _default = exports.default = Main;
42
- //# sourceMappingURL=Main.js.map
package/lib/Main.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Main.js","names":["_react","_interopRequireDefault","require","_propTypes","_renderUi","_Matrix","Main","React","Component","render","model","onSessionChange","session","props","extraCSSRules","default","createElement","PreviewLayout","_extends2","_defineProperty2","PropTypes","object","func","_default","exports"],"sources":["../src/Main.jsx"],"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 const { extraCSSRules } = model;\n return (\n <PreviewLayout extraCSSRules={extraCSSRules}>\n <Matrix {...model} session={session} onSessionChange={onSessionChange} />\n </PreviewLayout>\n );\n }\n}\n\nexport default Main;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,MAAMI,IAAI,SAASC,cAAK,CAACC,SAAS,CAAC;EAYjCC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,KAAK;MAAEC,eAAe;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACC,KAAK;IACtD,MAAM;MAAEC;IAAc,CAAC,GAAGJ,KAAK;IAC/B,oBACEV,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,SAAA,CAAAa,aAAa;MAACH,aAAa,EAAEA;IAAc,gBAC1Cd,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACX,OAAA,CAAAU,OAAM,MAAAG,SAAA,CAAAH,OAAA,MAAKL,KAAK;MAAEE,OAAO,EAAEA,OAAQ;MAACD,eAAe,EAAEA;IAAgB,EAAE,CAC3D,CAAC;EAEpB;AACF;AAAC,IAAAQ,gBAAA,CAAAJ,OAAA,EArBKT,IAAI,eACW;EACjBI,KAAK,EAAEU,kBAAS,CAACC,MAAM;EACvBT,OAAO,EAAEQ,kBAAS,CAACC,MAAM;EACzBV,eAAe,EAAES,kBAAS,CAACE;AAC7B,CAAC;AAAA,IAAAH,gBAAA,CAAAJ,OAAA,EALGT,IAAI,kBAOc;EACpBI,KAAK,EAAE,CAAC,CAAC;EACTE,OAAO,EAAE,CAAC;AACZ,CAAC;AAAA,IAAAW,QAAA,GAAAC,OAAA,CAAAT,OAAA,GAaYT,IAAI","ignoreList":[]}
package/lib/Matrix.js DELETED
@@ -1,104 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _styledComponents = _interopRequireDefault(require("styled-components"));
11
- var _ChoiceInput = _interopRequireDefault(require("./ChoiceInput"));
12
- var _renderUi = require("@pie-lib/render-ui");
13
- const MatrixWrapper = _styledComponents.default.div`
14
- color: ${_renderUi.color.text()};
15
- background-color: ${_renderUi.color.background()};
16
- font-family: Roboto, Arial, Helvetica, sans-serif;
17
- `;
18
- const MatrixGridWrapper = _styledComponents.default.div`
19
- display: grid;
20
- grid-template-columns: ${props => props.gridTemplateColumns};
21
- grid-column-gap: 30px;
22
- grid-row-gap: 20px;
23
- margin-top: 20px;
24
- `;
25
- const TeacherInstructions = (0, _styledComponents.default)(_renderUi.Collapsible)`
26
- margin-bottom: 16px;
27
- `;
28
- const MatrixGridItem = _styledComponents.default.div`
29
- align-self: center;
30
- justify-self: center;
31
- white-space: nowrap;
32
- `;
33
- const Matrix = props => {
34
- const {
35
- disabled,
36
- prompt,
37
- onSessionChange,
38
- columnLabels,
39
- matrixValues,
40
- rowLabels,
41
- session,
42
- teacherInstructions
43
- } = props;
44
- const gridMatrixItems = [];
45
- for (let rowIndex = 0; rowIndex < rowLabels.length + 1; rowIndex++) {
46
- for (let columnIndex = 0; columnIndex < columnLabels.length + 1; columnIndex++) {
47
- let gridMatrixItem;
48
- if (rowIndex === 0 && columnIndex === 0) {
49
- gridMatrixItem = null;
50
- } else if (rowIndex === 0) {
51
- gridMatrixItem = columnLabels[columnIndex - 1];
52
- } else if (columnIndex === 0) {
53
- gridMatrixItem = rowLabels[rowIndex - 1];
54
- } else {
55
- const matrixKey = `${rowIndex - 1}-${columnIndex - 1}`;
56
- const matrixValue = matrixValues[matrixKey];
57
- gridMatrixItem = /*#__PURE__*/_react.default.createElement(_ChoiceInput.default, {
58
- matrixKey: matrixKey,
59
- matrixValue: matrixValue || 0,
60
- disabled: disabled,
61
- onChange: onSessionChange,
62
- checked: session.value && Object.prototype.hasOwnProperty.call(session.value, matrixKey)
63
- });
64
- }
65
- gridMatrixItems.push(gridMatrixItem);
66
- }
67
- }
68
- const gridTemplateColumns = [...columnLabels, {}].map(() => 'min-content').join(' ');
69
- return /*#__PURE__*/_react.default.createElement(MatrixWrapper, null, teacherInstructions && /*#__PURE__*/_react.default.createElement(TeacherInstructions, {
70
- className: teacherInstructions,
71
- labels: {
72
- hidden: 'Show Teacher Instructions',
73
- visible: 'Hide Teacher Instructions'
74
- }
75
- }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
76
- prompt: teacherInstructions
77
- })), /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
78
- className: "prompt",
79
- prompt: prompt
80
- }), /*#__PURE__*/_react.default.createElement(MatrixGridWrapper, {
81
- gridTemplateColumns: gridTemplateColumns
82
- }, gridMatrixItems.map((gridMatrixItem, gridMatrixIndex) => {
83
- return /*#__PURE__*/_react.default.createElement(MatrixGridItem, {
84
- key: `${gridMatrixIndex}`
85
- }, gridMatrixItem);
86
- })));
87
- };
88
- Matrix.propTypes = {
89
- prompt: _propTypes.default.string,
90
- teacherInstructions: _propTypes.default.string,
91
- session: _propTypes.default.object,
92
- matrixValues: _propTypes.default.object,
93
- rowLabels: _propTypes.default.arrayOf(_propTypes.default.string),
94
- columnLabels: _propTypes.default.arrayOf(_propTypes.default.string),
95
- disabled: _propTypes.default.bool.isRequired,
96
- onSessionChange: _propTypes.default.func.isRequired
97
- };
98
- Matrix.defaultProps = {
99
- session: {
100
- value: {}
101
- }
102
- };
103
- var _default = exports.default = Matrix;
104
- //# sourceMappingURL=Matrix.js.map
package/lib/Matrix.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Matrix.js","names":["_react","_interopRequireDefault","require","_propTypes","_styledComponents","_ChoiceInput","_renderUi","MatrixWrapper","styled","div","color","text","background","MatrixGridWrapper","props","gridTemplateColumns","TeacherInstructions","Collapsible","MatrixGridItem","Matrix","disabled","prompt","onSessionChange","columnLabels","matrixValues","rowLabels","session","teacherInstructions","gridMatrixItems","rowIndex","length","columnIndex","gridMatrixItem","matrixKey","matrixValue","default","createElement","onChange","checked","value","Object","prototype","hasOwnProperty","call","push","map","join","className","labels","hidden","visible","PreviewPrompt","gridMatrixIndex","key","propTypes","PropTypes","string","object","arrayOf","bool","isRequired","func","defaultProps","_default","exports"],"sources":["../src/Matrix.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ChoiceInput from './ChoiceInput';\nimport { color, Collapsible, PreviewPrompt } from '@pie-lib/render-ui';\n\nconst MatrixWrapper = styled.div`\n color: ${color.text()};\n background-color: ${color.background()};\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: 20px;\n`;\n\nconst TeacherInstructions = styled(Collapsible)`\n margin-bottom: 16px;\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\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\n gridMatrixItem = (\n <ChoiceInput\n matrixKey={matrixKey}\n matrixValue={matrixValue || 0}\n disabled={disabled}\n onChange={onSessionChange}\n checked={session.value && Object.prototype.hasOwnProperty.call(session.value, matrixKey)}\n />\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 <TeacherInstructions\n className={teacherInstructions}\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </TeacherInstructions>\n )}\n\n <PreviewPrompt className=\"prompt\" prompt={prompt} />\n\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"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,iBAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,YAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEA,MAAMK,aAAa,GAAGC,yBAAM,CAACC,GAAG;AAChC,WAAWC,eAAK,CAACC,IAAI,CAAC,CAAC;AACvB,sBAAsBD,eAAK,CAACE,UAAU,CAAC,CAAC;AACxC;AACA,CAAC;AAED,MAAMC,iBAAiB,GAAGL,yBAAM,CAACC,GAAG;AACpC;AACA,2BAA4BK,KAAK,IAAKA,KAAK,CAACC,mBAAmB;AAC/D;AACA;AACA;AACA,CAAC;AAED,MAAMC,mBAAmB,GAAG,IAAAR,yBAAM,EAACS,qBAAW,CAAC;AAC/C;AACA,CAAC;AAED,MAAMC,cAAc,GAAGV,yBAAM,CAACC,GAAG;AACjC;AACA;AACA;AACA,CAAC;AAED,MAAMU,MAAM,GAAIL,KAAK,IAAK;EACxB,MAAM;IAAEM,QAAQ;IAAEC,MAAM;IAAEC,eAAe;IAAEC,YAAY;IAAEC,YAAY;IAAEC,SAAS;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAC9Gb,KAAK;EAEP,MAAMc,eAAe,GAAG,EAAE;EAE1B,KAAK,IAAIC,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGJ,SAAS,CAACK,MAAM,GAAG,CAAC,EAAED,QAAQ,EAAE,EAAE;IAClE,KAAK,IAAIE,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAGR,YAAY,CAACO,MAAM,GAAG,CAAC,EAAEC,WAAW,EAAE,EAAE;MAC9E,IAAIC,cAAc;MAElB,IAAIH,QAAQ,KAAK,CAAC,IAAIE,WAAW,KAAK,CAAC,EAAE;QACvCC,cAAc,GAAG,IAAI;MACvB,CAAC,MAAM,IAAIH,QAAQ,KAAK,CAAC,EAAE;QACzBG,cAAc,GAAGT,YAAY,CAACQ,WAAW,GAAG,CAAC,CAAC;MAChD,CAAC,MAAM,IAAIA,WAAW,KAAK,CAAC,EAAE;QAC5BC,cAAc,GAAGP,SAAS,CAACI,QAAQ,GAAG,CAAC,CAAC;MAC1C,CAAC,MAAM;QACL,MAAMI,SAAS,GAAG,GAAGJ,QAAQ,GAAG,CAAC,IAAIE,WAAW,GAAG,CAAC,EAAE;QACtD,MAAMG,WAAW,GAAGV,YAAY,CAACS,SAAS,CAAC;QAE3CD,cAAc,gBACZhC,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAC/B,YAAA,CAAA8B,OAAW;UACVF,SAAS,EAAEA,SAAU;UACrBC,WAAW,EAAEA,WAAW,IAAI,CAAE;UAC9Bd,QAAQ,EAAEA,QAAS;UACnBiB,QAAQ,EAAEf,eAAgB;UAC1BgB,OAAO,EAAEZ,OAAO,CAACa,KAAK,IAAIC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACjB,OAAO,CAACa,KAAK,EAAEN,SAAS;QAAE,CAC1F,CACF;MACH;MAEAL,eAAe,CAACgB,IAAI,CAACZ,cAAc,CAAC;IACtC;EACF;EACA,MAAMjB,mBAAmB,GAAG,CAAC,GAAGQ,YAAY,EAAE,CAAC,CAAC,CAAC,CAACsB,GAAG,CAAC,MAAM,aAAa,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;EAEpF,oBACE9C,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAC7B,aAAa,QACXoB,mBAAmB,iBAClB3B,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAACpB,mBAAmB;IAClB+B,SAAS,EAAEpB,mBAAoB;IAC/BqB,MAAM,EAAE;MACNC,MAAM,EAAE,2BAA2B;MACnCC,OAAO,EAAE;IACX;EAAE,gBAEFlD,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAC9B,SAAA,CAAA6C,aAAa;IAAC9B,MAAM,EAAEM;EAAoB,CAAE,CAC1B,CACtB,eAED3B,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAC9B,SAAA,CAAA6C,aAAa;IAACJ,SAAS,EAAC,QAAQ;IAAC1B,MAAM,EAAEA;EAAO,CAAE,CAAC,eAEpDrB,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAACvB,iBAAiB;IAACE,mBAAmB,EAAEA;EAAoB,GACzDa,eAAe,CAACiB,GAAG,CAAC,CAACb,cAAc,EAAEoB,eAAe,KAAK;IACxD,oBAAOpD,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAClB,cAAc;MAACmC,GAAG,EAAE,GAAGD,eAAe;IAAG,GAAEpB,cAA+B,CAAC;EACrF,CAAC,CACgB,CACN,CAAC;AAEpB,CAAC;AAEDb,MAAM,CAACmC,SAAS,GAAG;EACjBjC,MAAM,EAAEkC,kBAAS,CAACC,MAAM;EACxB7B,mBAAmB,EAAE4B,kBAAS,CAACC,MAAM;EACrC9B,OAAO,EAAE6B,kBAAS,CAACE,MAAM;EACzBjC,YAAY,EAAE+B,kBAAS,CAACE,MAAM;EAC9BhC,SAAS,EAAE8B,kBAAS,CAACG,OAAO,CAACH,kBAAS,CAACC,MAAM,CAAC;EAC9CjC,YAAY,EAAEgC,kBAAS,CAACG,OAAO,CAACH,kBAAS,CAACC,MAAM,CAAC;EACjDpC,QAAQ,EAAEmC,kBAAS,CAACI,IAAI,CAACC,UAAU;EACnCtC,eAAe,EAAEiC,kBAAS,CAACM,IAAI,CAACD;AAClC,CAAC;AAEDzC,MAAM,CAAC2C,YAAY,GAAG;EACpBpC,OAAO,EAAE;IACPa,KAAK,EAAE,CAAC;EACV;AACF,CAAC;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAA7B,OAAA,GAEahB,MAAM","ignoreList":[]}
package/lib/index.js DELETED
@@ -1,80 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.isComplete = exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _client = require("react-dom/client");
10
- var _piePlayerEvents = require("@pie-framework/pie-player-events");
11
- var _mathRendering = require("@pie-lib/math-rendering");
12
- var _Main = _interopRequireDefault(require("./Main"));
13
- const isComplete = session => {
14
- if (!session || !session.value) {
15
- return false;
16
- }
17
- return !!Object.keys(session.value).length;
18
- };
19
- exports.isComplete = isComplete;
20
- class Matrix extends HTMLElement {
21
- constructor() {
22
- super();
23
- this._root = null;
24
- }
25
- set model(m) {
26
- this._model = m;
27
- this._render();
28
- }
29
- set session(s) {
30
- this._session = s;
31
- this._render();
32
- }
33
- get session() {
34
- return this._session;
35
- }
36
- sessionChanged({
37
- matrixKey,
38
- matrixValue
39
- }) {
40
- const matrixRowKey = matrixKey.split('-')[0];
41
- const sessionValueClone = Object.keys(this._session.value || {}).reduce((acc, key) => {
42
- if (!key.startsWith(matrixRowKey)) {
43
- acc[key] = this._session.value[key];
44
- }
45
- return acc;
46
- }, {});
47
- sessionValueClone[matrixKey] = matrixValue;
48
- this._session.value = sessionValueClone;
49
- const complete = isComplete(this._session, this._model);
50
- this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), complete));
51
- this._render();
52
- }
53
- connectedCallback() {
54
- this._render();
55
- }
56
- _render() {
57
- if (!this._model || !this._session) {
58
- return;
59
- }
60
- const el = /*#__PURE__*/_react.default.createElement(_Main.default, {
61
- model: this._model,
62
- session: this._session,
63
- onSessionChange: this.sessionChanged.bind(this)
64
- });
65
- if (!this._root) {
66
- this._root = (0, _client.createRoot)(this);
67
- }
68
- this._root.render(el);
69
- queueMicrotask(() => {
70
- (0, _mathRendering.renderMath)(this);
71
- });
72
- }
73
- disconnectedCallback() {
74
- if (this._root) {
75
- this._root.unmount();
76
- }
77
- }
78
- }
79
- exports.default = Matrix;
80
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_mathRendering","_Main","isComplete","session","value","Object","keys","length","exports","Matrix","HTMLElement","constructor","_root","model","m","_model","_render","s","_session","sessionChanged","matrixKey","matrixValue","matrixRowKey","split","sessionValueClone","reduce","acc","key","startsWith","complete","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","connectedCallback","el","React","createElement","Main","onSessionChange","bind","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","default"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\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 this._root = null;\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 if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.updateSessionValue = updateSessionValue;
7
- function updateSessionValue(session, data) {
8
- session.value = data.value || session.value || {};
9
- }
10
- //# sourceMappingURL=session-updater.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-updater.js","names":["updateSessionValue","session","data","value"],"sources":["../src/session-updater.js"],"sourcesContent":["export function updateSessionValue(session, data) {\n session.value = data.value || session.value || {};\n}\n"],"mappings":";;;;;;AAAO,SAASA,kBAAkBA,CAACC,OAAO,EAAEC,IAAI,EAAE;EAChDD,OAAO,CAACE,KAAK,GAAGD,IAAI,CAACC,KAAK,IAAIF,OAAO,CAACE,KAAK,IAAI,CAAC,CAAC;AACnD","ignoreList":[]}