@pie-element/matrix 2.3.4-next.3 → 3.0.0-beta.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 (50) hide show
  1. package/configure/lib/HeaderCommon.js +19 -22
  2. package/configure/lib/HeaderCommon.js.map +1 -1
  3. package/configure/lib/Main.js +116 -181
  4. package/configure/lib/Main.js.map +1 -1
  5. package/configure/lib/MatrixColumnsSizeHeaderInput.js +28 -48
  6. package/configure/lib/MatrixColumnsSizeHeaderInput.js.map +1 -1
  7. package/configure/lib/MatrixLabelEditableButton.js +134 -129
  8. package/configure/lib/MatrixLabelEditableButton.js.map +1 -1
  9. package/configure/lib/MatrixLabelTypeHeaderInput.js +45 -93
  10. package/configure/lib/MatrixLabelTypeHeaderInput.js.map +1 -1
  11. package/configure/lib/MatrixRowsSizeHeaderInput.js +28 -48
  12. package/configure/lib/MatrixRowsSizeHeaderInput.js.map +1 -1
  13. package/configure/lib/MatrixValues.js +150 -178
  14. package/configure/lib/MatrixValues.js.map +1 -1
  15. package/configure/lib/NumberInput.js +39 -60
  16. package/configure/lib/NumberInput.js.map +1 -1
  17. package/configure/lib/columnLabelsGenerator.js +23 -32
  18. package/configure/lib/columnLabelsGenerator.js.map +1 -1
  19. package/configure/lib/defaults.js +2 -4
  20. package/configure/lib/defaults.js.map +1 -1
  21. package/configure/lib/index.js +76 -140
  22. package/configure/lib/index.js.map +1 -1
  23. package/configure/lib/isNumeric.js +3 -5
  24. package/configure/lib/isNumeric.js.map +1 -1
  25. package/configure/lib/matrixEntities.js +1 -2
  26. package/configure/lib/matrixEntities.js.map +1 -1
  27. package/configure/package.json +10 -7
  28. package/controller/lib/defaults.js +2 -3
  29. package/controller/lib/defaults.js.map +1 -1
  30. package/controller/lib/index.js +44 -91
  31. package/controller/lib/index.js.map +1 -1
  32. package/controller/package.json +1 -1
  33. package/lib/ChoiceInput.js +31 -47
  34. package/lib/ChoiceInput.js.map +1 -1
  35. package/lib/Main.js +24 -58
  36. package/lib/Main.js.map +1 -1
  37. package/lib/Matrix.js +57 -66
  38. package/lib/Matrix.js.map +1 -1
  39. package/lib/index.js +59 -103
  40. package/lib/index.js.map +1 -1
  41. package/lib/session-updater.js +0 -1
  42. package/lib/session-updater.js.map +1 -1
  43. package/package.json +10 -7
  44. package/esm/configure.js +0 -26337
  45. package/esm/configure.js.map +0 -1
  46. package/esm/controller.js +0 -1084
  47. package/esm/controller.js.map +0 -1
  48. package/esm/element.js +0 -13321
  49. package/esm/element.js.map +0 -1
  50. package/esm/package.json +0 -3
package/lib/Matrix.js CHANGED
@@ -1,53 +1,50 @@
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
  });
8
- exports["default"] = void 0;
9
-
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
7
+ exports.default = void 0;
14
8
  var _react = _interopRequireDefault(require("react"));
15
-
16
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
-
18
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
19
-
20
11
  var _ChoiceInput = _interopRequireDefault(require("./ChoiceInput"));
21
-
22
12
  var _renderUi = require("@pie-lib/render-ui");
23
-
24
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
25
-
26
- var MatrixWrapper = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n background-color: ", ";\n font-family: Roboto, Arial, Helvetica, sans-serif;\n"])), _renderUi.color.text(), _renderUi.color.background());
27
-
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: 20px;\n"])), function (props) {
29
- return props.gridTemplateColumns;
30
- });
31
-
32
- var TeacherInstructions = (0, _styledComponents["default"])(_renderUi.Collapsible)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: 16px;\n"])));
33
-
34
- var MatrixGridItem = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n align-self: center;\n justify-self: center;\n white-space: nowrap;\n"])));
35
-
36
- var Matrix = function Matrix(props) {
37
- var disabled = props.disabled,
38
- prompt = props.prompt,
39
- onSessionChange = props.onSessionChange,
40
- columnLabels = props.columnLabels,
41
- matrixValues = props.matrixValues,
42
- rowLabels = props.rowLabels,
43
- session = props.session,
44
- teacherInstructions = props.teacherInstructions;
45
- var gridMatrixItems = [];
46
-
47
- for (var rowIndex = 0; rowIndex < rowLabels.length + 1; rowIndex++) {
48
- for (var columnIndex = 0; columnIndex < columnLabels.length + 1; columnIndex++) {
49
- var gridMatrixItem = void 0;
50
-
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;
51
48
  if (rowIndex === 0 && columnIndex === 0) {
52
49
  gridMatrixItem = null;
53
50
  } else if (rowIndex === 0) {
@@ -55,59 +52,53 @@ var Matrix = function Matrix(props) {
55
52
  } else if (columnIndex === 0) {
56
53
  gridMatrixItem = rowLabels[rowIndex - 1];
57
54
  } else {
58
- var matrixKey = "".concat(rowIndex - 1, "-").concat(columnIndex - 1);
59
- var matrixValue = matrixValues[matrixKey];
60
- gridMatrixItem = /*#__PURE__*/_react["default"].createElement(_ChoiceInput["default"], {
55
+ const matrixKey = `${rowIndex - 1}-${columnIndex - 1}`;
56
+ const matrixValue = matrixValues[matrixKey];
57
+ gridMatrixItem = /*#__PURE__*/_react.default.createElement(_ChoiceInput.default, {
61
58
  matrixKey: matrixKey,
62
59
  matrixValue: matrixValue || 0,
63
60
  disabled: disabled,
64
61
  onChange: onSessionChange,
65
- checked: session.value && session.value.hasOwnProperty(matrixKey)
62
+ checked: session.value && Object.prototype.hasOwnProperty.call(session.value, matrixKey)
66
63
  });
67
64
  }
68
-
69
65
  gridMatrixItems.push(gridMatrixItem);
70
66
  }
71
67
  }
72
-
73
- var gridTemplateColumns = [].concat((0, _toConsumableArray2["default"])(columnLabels), [{}]).map(function () {
74
- return 'min-content';
75
- }).join(' ');
76
- return /*#__PURE__*/_react["default"].createElement(MatrixWrapper, null, teacherInstructions && /*#__PURE__*/_react["default"].createElement(TeacherInstructions, {
68
+ const gridTemplateColumns = [...columnLabels, {}].map(() => 'min-content').join(' ');
69
+ return /*#__PURE__*/_react.default.createElement(MatrixWrapper, null, teacherInstructions && /*#__PURE__*/_react.default.createElement(TeacherInstructions, {
77
70
  className: teacherInstructions,
78
71
  labels: {
79
72
  hidden: 'Show Teacher Instructions',
80
73
  visible: 'Hide Teacher Instructions'
81
74
  }
82
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
75
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
83
76
  prompt: teacherInstructions
84
- })), /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
77
+ })), /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
85
78
  className: "prompt",
86
79
  prompt: prompt
87
- }), /*#__PURE__*/_react["default"].createElement(MatrixGridWrapper, {
80
+ }), /*#__PURE__*/_react.default.createElement(MatrixGridWrapper, {
88
81
  gridTemplateColumns: gridTemplateColumns
89
- }, gridMatrixItems.map(function (gridMatrixItem, gridMatrixIndex) {
90
- return /*#__PURE__*/_react["default"].createElement(MatrixGridItem, {
91
- key: "".concat(gridMatrixIndex)
82
+ }, gridMatrixItems.map((gridMatrixItem, gridMatrixIndex) => {
83
+ return /*#__PURE__*/_react.default.createElement(MatrixGridItem, {
84
+ key: `${gridMatrixIndex}`
92
85
  }, gridMatrixItem);
93
86
  })));
94
87
  };
95
-
96
88
  Matrix.propTypes = {
97
- prompt: _propTypes["default"].string,
98
- teacherInstructions: _propTypes["default"].string,
99
- session: _propTypes["default"].object,
100
- matrixValues: _propTypes["default"].object,
101
- rowLabels: _propTypes["default"].arrayOf(_propTypes["default"].string),
102
- columnLabels: _propTypes["default"].arrayOf(_propTypes["default"].string),
103
- disabled: _propTypes["default"].bool.isRequired,
104
- onSessionChange: _propTypes["default"].func.isRequired
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
105
97
  };
106
98
  Matrix.defaultProps = {
107
99
  session: {
108
100
  value: {}
109
101
  }
110
102
  };
111
- var _default = Matrix;
112
- exports["default"] = _default;
103
+ var _default = exports.default = Matrix;
113
104
  //# sourceMappingURL=Matrix.js.map
package/lib/Matrix.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Matrix.jsx"],"names":["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","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 { 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 && session.value.hasOwnProperty(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"],"file":"Matrix.js"}
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":"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","ignoreList":[]}
package/lib/index.js CHANGED
@@ -1,124 +1,80 @@
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
  });
8
- exports.isComplete = exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
21
-
7
+ exports.isComplete = exports.default = void 0;
22
8
  var _react = _interopRequireDefault(require("react"));
23
-
24
- var _reactDom = _interopRequireDefault(require("react-dom"));
25
-
9
+ var _client = require("react-dom/client");
26
10
  var _piePlayerEvents = require("@pie-framework/pie-player-events");
27
-
28
11
  var _mathRendering = require("@pie-lib/math-rendering");
29
-
30
12
  var _Main = _interopRequireDefault(require("./Main"));
31
-
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
-
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
-
36
- var isComplete = function isComplete(session) {
13
+ const isComplete = session => {
37
14
  if (!session || !session.value) {
38
15
  return false;
39
16
  }
40
-
41
17
  return !!Object.keys(session.value).length;
42
18
  };
43
-
44
19
  exports.isComplete = isComplete;
45
-
46
- var Matrix = /*#__PURE__*/function (_HTMLElement) {
47
- (0, _inherits2["default"])(Matrix, _HTMLElement);
48
-
49
- var _super = _createSuper(Matrix);
50
-
51
- function Matrix() {
52
- (0, _classCallCheck2["default"])(this, Matrix);
53
- return _super.call(this);
20
+ class Matrix extends HTMLElement {
21
+ constructor() {
22
+ super();
23
+ this._root = null;
54
24
  }
55
-
56
- (0, _createClass2["default"])(Matrix, [{
57
- key: "model",
58
- set: function set(m) {
59
- this._model = m;
60
-
61
- this._render();
62
- }
63
- }, {
64
- key: "session",
65
- get: function get() {
66
- return this._session;
67
- },
68
- set: function set(s) {
69
- this._session = s;
70
-
71
- this._render();
72
- }
73
- }, {
74
- key: "sessionChanged",
75
- value: function sessionChanged(_ref) {
76
- var _this = this;
77
-
78
- var matrixKey = _ref.matrixKey,
79
- matrixValue = _ref.matrixValue;
80
- var matrixRowKey = matrixKey.split('-')[0];
81
- var sessionValueClone = Object.keys(this._session.value || {}).reduce(function (acc, key) {
82
- if (!key.startsWith(matrixRowKey)) {
83
- acc[key] = _this._session.value[key];
84
- }
85
-
86
- return acc;
87
- }, {});
88
- sessionValueClone[matrixKey] = matrixValue;
89
- this._session.value = sessionValueClone;
90
- var complete = isComplete(this._session, this._model);
91
- this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), complete));
92
-
93
- this._render();
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;
94
59
  }
95
- }, {
96
- key: "connectedCallback",
97
- value: function connectedCallback() {
98
- this._render();
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);
99
67
  }
100
- }, {
101
- key: "_render",
102
- value: function _render() {
103
- var _this2 = this;
104
-
105
- if (!this._model || !this._session) {
106
- return;
107
- }
108
-
109
- var el = /*#__PURE__*/_react["default"].createElement(_Main["default"], {
110
- model: this._model,
111
- session: this._session,
112
- onSessionChange: this.sessionChanged.bind(this)
113
- });
114
-
115
- _reactDom["default"].render(el, this, function () {
116
- (0, _mathRendering.renderMath)(_this2);
117
- });
68
+ this._root.render(el);
69
+ queueMicrotask(() => {
70
+ (0, _mathRendering.renderMath)(this);
71
+ });
72
+ }
73
+ disconnectedCallback() {
74
+ if (this._root) {
75
+ this._root.unmount();
118
76
  }
119
- }]);
120
- return Matrix;
121
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
122
-
123
- exports["default"] = Matrix;
77
+ }
78
+ }
79
+ exports.default = Matrix;
124
80
  //# sourceMappingURL=index.js.map
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","_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"}
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":[]}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.updateSessionValue = updateSessionValue;
7
-
8
7
  function updateSessionValue(session, data) {
9
8
  session.value = data.value || session.value || {};
10
9
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/session-updater.js"],"names":["updateSessionValue","session","data","value"],"mappings":";;;;;;;AAAO,SAASA,kBAAT,CAA4BC,OAA5B,EAAqCC,IAArC,EAA2C;AAChDD,EAAAA,OAAO,CAACE,KAAR,GAAgBD,IAAI,CAACC,KAAL,IAAcF,OAAO,CAACE,KAAtB,IAA+B,EAA/C;AACD","sourcesContent":["export function updateSessionValue(session, data) {\n session.value = data.value || session.value || {};\n}\n"],"file":"session-updater.js"}
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":[]}
package/package.json CHANGED
@@ -4,25 +4,28 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "2.3.4-next.3+1f5df43bb",
7
+ "version": "3.0.0-beta.0",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1"
11
11
  },
12
12
  "dependencies": {
13
- "@material-ui/core": "^3.9.2",
13
+ "@emotion/react": "^11.14.0",
14
+ "@emotion/style": "^0.8.0",
15
+ "@mui/icons-material": "^7.3.4",
16
+ "@mui/material": "^7.3.4",
14
17
  "@pie-framework/pie-player-events": "^0.1.0",
15
- "@pie-lib/math-rendering": "3.22.1",
16
- "@pie-lib/render-ui": "4.35.2",
18
+ "@pie-lib/math-rendering": "3.22.3-next.0",
19
+ "@pie-lib/render-ui": "4.35.4-next.0",
17
20
  "debug": "^4.1.1",
18
21
  "prop-types": "^15.6.1",
19
- "react": "^16.8.1",
20
- "react-dom": "^16.8.1",
22
+ "react": "18.2.0",
23
+ "react-dom": "18.2.0",
21
24
  "styled-components": "^5.2.1"
22
25
  },
23
26
  "author": "",
24
27
  "license": "ISC",
25
- "gitHead": "1f5df43bb21a7e04dbae9de66831b3d64d3ff5a8",
28
+ "gitHead": "802d21e25bfd05e6c6f6913260dfb6a4ed28a274",
26
29
  "main": "lib/index.js",
27
30
  "module": "src/index.js"
28
31
  }