@pie-element/drawing-response 12.2.2-beta.6 → 12.2.2-beta.8

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 (56) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/configure/CHANGELOG.md +8 -0
  3. package/configure/lib/button.js +37 -0
  4. package/configure/lib/button.js.map +1 -0
  5. package/configure/lib/defaults.js +116 -0
  6. package/configure/lib/defaults.js.map +1 -0
  7. package/configure/lib/image-container.js +307 -0
  8. package/configure/lib/image-container.js.map +1 -0
  9. package/configure/lib/index.js +151 -0
  10. package/configure/lib/index.js.map +1 -0
  11. package/configure/lib/root.js +219 -0
  12. package/configure/lib/root.js.map +1 -0
  13. package/configure/package.json +3 -3
  14. package/controller/CHANGELOG.md +8 -0
  15. package/controller/lib/defaults.js +22 -0
  16. package/controller/lib/defaults.js.map +1 -0
  17. package/controller/lib/index.js +84 -0
  18. package/controller/lib/index.js.map +1 -0
  19. package/controller/package.json +1 -1
  20. package/lib/drawing-response/button.js +49 -0
  21. package/lib/drawing-response/button.js.map +1 -0
  22. package/lib/drawing-response/constants.js +43 -0
  23. package/lib/drawing-response/constants.js.map +1 -0
  24. package/lib/drawing-response/container.js +327 -0
  25. package/lib/drawing-response/container.js.map +1 -0
  26. package/lib/drawing-response/drawable-circle.js +80 -0
  27. package/lib/drawing-response/drawable-circle.js.map +1 -0
  28. package/lib/drawing-response/drawable-eraser.js +64 -0
  29. package/lib/drawing-response/drawable-eraser.js.map +1 -0
  30. package/lib/drawing-response/drawable-free-path.js +71 -0
  31. package/lib/drawing-response/drawable-free-path.js.map +1 -0
  32. package/lib/drawing-response/drawable-helper.js +34 -0
  33. package/lib/drawing-response/drawable-helper.js.map +1 -0
  34. package/lib/drawing-response/drawable-image.js +41 -0
  35. package/lib/drawing-response/drawable-image.js.map +1 -0
  36. package/lib/drawing-response/drawable-line.js +75 -0
  37. package/lib/drawing-response/drawable-line.js.map +1 -0
  38. package/lib/drawing-response/drawable-main.js +345 -0
  39. package/lib/drawing-response/drawable-main.js.map +1 -0
  40. package/lib/drawing-response/drawable-palette.js +140 -0
  41. package/lib/drawing-response/drawable-palette.js.map +1 -0
  42. package/lib/drawing-response/drawable-rectangle.js +80 -0
  43. package/lib/drawing-response/drawable-rectangle.js.map +1 -0
  44. package/lib/drawing-response/drawable-text.js +295 -0
  45. package/lib/drawing-response/drawable-text.js.map +1 -0
  46. package/lib/drawing-response/drawable-transformer.js +52 -0
  47. package/lib/drawing-response/drawable-transformer.js.map +1 -0
  48. package/lib/drawing-response/factory.js +22 -0
  49. package/lib/drawing-response/factory.js.map +1 -0
  50. package/lib/drawing-response/icon.js +55 -0
  51. package/lib/drawing-response/icon.js.map +1 -0
  52. package/lib/drawing-response/index.js +91 -0
  53. package/lib/drawing-response/index.js.map +1 -0
  54. package/lib/index.js +69 -0
  55. package/lib/index.js.map +1 -0
  56. package/package.json +2 -2
@@ -0,0 +1,22 @@
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 _drawableFreePath = _interopRequireDefault(require("./drawable-free-path"));
9
+ var _drawableLine = _interopRequireDefault(require("./drawable-line"));
10
+ var _drawableRectangle = _interopRequireDefault(require("./drawable-rectangle"));
11
+ var _drawableCircle = _interopRequireDefault(require("./drawable-circle"));
12
+ var _drawableEraser = _interopRequireDefault(require("./drawable-eraser"));
13
+ const DRAWABLES = [_drawableFreePath.default, _drawableLine.default, _drawableRectangle.default, _drawableCircle.default, _drawableEraser.default];
14
+ var _default = (type, props) => {
15
+ const T = DRAWABLES.find(D => D.TYPE === type);
16
+ if (T) {
17
+ return new T(props);
18
+ }
19
+ throw new Error(`Can't find drawable for type: ${type} and props: ${JSON.stringify(props)}`);
20
+ };
21
+ exports.default = _default;
22
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","names":["_drawableFreePath","_interopRequireDefault","require","_drawableLine","_drawableRectangle","_drawableCircle","_drawableEraser","DRAWABLES","FreePathDrawable","LineDrawable","RectangleDrawable","CircleDrawable","EraserDrawable","_default","type","props","T","find","D","TYPE","Error","JSON","stringify","exports","default"],"sources":["../../src/drawing-response/factory.js"],"sourcesContent":["import FreePathDrawable from './drawable-free-path';\nimport LineDrawable from './drawable-line';\nimport RectangleDrawable from './drawable-rectangle';\nimport CircleDrawable from './drawable-circle';\nimport EraserDrawable from './drawable-eraser';\n\nconst DRAWABLES = [FreePathDrawable, LineDrawable, RectangleDrawable, CircleDrawable, EraserDrawable];\n\nexport default (type, props) => {\n const T = DRAWABLES.find((D) => D.TYPE === type);\n\n if (T) {\n return new T(props);\n }\n\n throw new Error(`Can't find drawable for type: ${type} and props: ${JSON.stringify(props)}`);\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,kBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,eAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,MAAMK,SAAS,GAAG,CAACC,yBAAgB,EAAEC,qBAAY,EAAEC,0BAAiB,EAAEC,uBAAc,EAAEC,uBAAc,CAAC;AAAC,IAAAC,QAAA,GAEvFA,CAACC,IAAI,EAAEC,KAAK,KAAK;EAC9B,MAAMC,CAAC,GAAGT,SAAS,CAACU,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAKL,IAAI,CAAC;EAEhD,IAAIE,CAAC,EAAE;IACL,OAAO,IAAIA,CAAC,CAACD,KAAK,CAAC;EACrB;EAEA,MAAM,IAAIK,KAAK,CAAC,iCAAiCN,IAAI,eAAeO,IAAI,CAACC,SAAS,CAACP,KAAK,CAAC,EAAE,CAAC;AAC9F,CAAC;AAAAQ,OAAA,CAAAC,OAAA,GAAAX,QAAA","ignoreList":[]}
@@ -0,0 +1,55 @@
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 _react2 = _interopRequireDefault(require("@mdi/react"));
11
+ var _js = require("@mdi/js");
12
+ const IconWrapper = ({
13
+ path
14
+ }) => {
15
+ let iconPath;
16
+ switch (path) {
17
+ case 'mdiPencil':
18
+ iconPath = _js.mdiPencil;
19
+ break;
20
+ case 'mdiMinus':
21
+ iconPath = _js.mdiMinus;
22
+ break;
23
+ case 'mdiCircle':
24
+ iconPath = _js.mdiCircle;
25
+ break;
26
+ case 'mdiRectangle':
27
+ iconPath = _js.mdiRectangle;
28
+ break;
29
+ case 'mdiFormatColorText':
30
+ iconPath = _js.mdiFormatColorText;
31
+ break;
32
+ case 'mdiFormatColorFill':
33
+ iconPath = _js.mdiFormatColorFill;
34
+ break;
35
+ case 'mdiEraser':
36
+ iconPath = _js.mdiEraser;
37
+ break;
38
+ default:
39
+ iconPath = _js.mdiCursorDefault;
40
+ break;
41
+ }
42
+ return /*#__PURE__*/_react.default.createElement(_react2.default, {
43
+ path: iconPath,
44
+ size: 0.8,
45
+ rotate: 180,
46
+ horizontal: true,
47
+ vertical: true,
48
+ color: "#2B3963"
49
+ });
50
+ };
51
+ IconWrapper.propTypes = {
52
+ path: _propTypes.default.string.isRequired
53
+ };
54
+ var _default = exports.default = IconWrapper;
55
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.js","names":["_react","_interopRequireDefault","require","_propTypes","_react2","_js","IconWrapper","path","iconPath","mdiPencil","mdiMinus","mdiCircle","mdiRectangle","mdiFormatColorText","mdiFormatColorFill","mdiEraser","mdiCursorDefault","default","createElement","size","rotate","horizontal","vertical","color","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../src/drawing-response/icon.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '@mdi/react';\nimport {\n mdiCursorDefault,\n mdiPencil,\n mdiMinus,\n mdiRectangle,\n mdiCircle,\n mdiFormatColorText,\n mdiFormatColorFill,\n mdiEraser,\n} from '@mdi/js';\n\nconst IconWrapper = ({ path }) => {\n let iconPath;\n\n switch (path) {\n case 'mdiPencil':\n iconPath = mdiPencil;\n break;\n case 'mdiMinus':\n iconPath = mdiMinus;\n break;\n case 'mdiCircle':\n iconPath = mdiCircle;\n break;\n case 'mdiRectangle':\n iconPath = mdiRectangle;\n break;\n case 'mdiFormatColorText':\n iconPath = mdiFormatColorText;\n break;\n case 'mdiFormatColorFill':\n iconPath = mdiFormatColorFill;\n break;\n case 'mdiEraser':\n iconPath = mdiEraser;\n break;\n default:\n iconPath = mdiCursorDefault;\n break;\n }\n\n return <Icon path={iconPath} size={0.8} rotate={180} horizontal vertical color=\"#2B3963\" />;\n};\n\nIconWrapper.propTypes = {\n path: PropTypes.string.isRequired,\n};\n\nexport default IconWrapper;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AAWA,MAAMI,WAAW,GAAGA,CAAC;EAAEC;AAAK,CAAC,KAAK;EAChC,IAAIC,QAAQ;EAEZ,QAAQD,IAAI;IACV,KAAK,WAAW;MACdC,QAAQ,GAAGC,aAAS;MACpB;IACF,KAAK,UAAU;MACbD,QAAQ,GAAGE,YAAQ;MACnB;IACF,KAAK,WAAW;MACdF,QAAQ,GAAGG,aAAS;MACpB;IACF,KAAK,cAAc;MACjBH,QAAQ,GAAGI,gBAAY;MACvB;IACF,KAAK,oBAAoB;MACvBJ,QAAQ,GAAGK,sBAAkB;MAC7B;IACF,KAAK,oBAAoB;MACvBL,QAAQ,GAAGM,sBAAkB;MAC7B;IACF,KAAK,WAAW;MACdN,QAAQ,GAAGO,aAAS;MACpB;IACF;MACEP,QAAQ,GAAGQ,oBAAgB;MAC3B;EACJ;EAEA,oBAAOhB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACd,OAAA,CAAAa,OAAI;IAACV,IAAI,EAAEC,QAAS;IAACW,IAAI,EAAE,GAAI;IAACC,MAAM,EAAE,GAAI;IAACC,UAAU;IAACC,QAAQ;IAACC,KAAK,EAAC;EAAS,CAAE,CAAC;AAC7F,CAAC;AAEDjB,WAAW,CAACkB,SAAS,GAAG;EACtBjB,IAAI,EAAEkB,kBAAS,CAACC,MAAM,CAACC;AACzB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAZ,OAAA,GAEaX,WAAW","ignoreList":[]}
@@ -0,0 +1,91 @@
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 _renderUi = require("@pie-lib/render-ui");
11
+ var _styles = require("@mui/material/styles");
12
+ var _container = _interopRequireDefault(require("./container"));
13
+ const StyledUiLayout = (0, _styles.styled)(_renderUi.UiLayout)({
14
+ color: _renderUi.color.text(),
15
+ backgroundColor: _renderUi.color.background()
16
+ });
17
+ const StyledCollapsible = (0, _styles.styled)(_renderUi.Collapsible)(({
18
+ theme
19
+ }) => ({
20
+ marginBottom: theme.spacing(2)
21
+ }));
22
+ const ErrorDiv = (0, _styles.styled)('div')({
23
+ color: _renderUi.color.text(),
24
+ backgroundColor: _renderUi.color.background()
25
+ });
26
+ class DrawingResponseComponent extends _react.default.Component {
27
+ constructor(props) {
28
+ super(props);
29
+ this.state = {
30
+ showCorrect: false,
31
+ hasError: false
32
+ };
33
+ }
34
+ static getDerivedStateFromError(error) {
35
+ return {
36
+ hasError: true,
37
+ errorMessage: error.message
38
+ };
39
+ }
40
+ render() {
41
+ const {
42
+ model: {
43
+ extraCSSRules,
44
+ disabled,
45
+ imageDimensions,
46
+ imageUrl,
47
+ prompt,
48
+ mode,
49
+ teacherInstructions,
50
+ backgroundImageEnabled,
51
+ language
52
+ },
53
+ session,
54
+ onSessionChange
55
+ } = this.props;
56
+ const {
57
+ hasError,
58
+ errorMessage
59
+ } = this.state;
60
+ const isEvaluateMode = mode === 'evaluate';
61
+ return hasError ? /*#__PURE__*/_react.default.createElement(ErrorDiv, null, "An error occured: ", errorMessage) : /*#__PURE__*/_react.default.createElement(StyledUiLayout, {
62
+ extraCSSRules: extraCSSRules
63
+ }, teacherInstructions && /*#__PURE__*/_react.default.createElement(StyledCollapsible, {
64
+ labels: {
65
+ hidden: 'Show Teacher Instructions',
66
+ visible: 'Hide Teacher Instructions'
67
+ }
68
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
69
+ prompt: teacherInstructions
70
+ })), prompt && /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
71
+ tagName: "span",
72
+ prompt: prompt
73
+ }), /*#__PURE__*/_react.default.createElement(_container.default, {
74
+ session: session,
75
+ onSessionChange: onSessionChange,
76
+ isEvaluateMode: isEvaluateMode,
77
+ imageDimensions: imageDimensions,
78
+ imageUrl: imageUrl,
79
+ backgroundImageEnabled: backgroundImageEnabled,
80
+ disabled: disabled,
81
+ language: language
82
+ }));
83
+ }
84
+ }
85
+ DrawingResponseComponent.propTypes = {
86
+ model: _propTypes.default.object.isRequired,
87
+ onSessionChange: _propTypes.default.func.isRequired,
88
+ session: _propTypes.default.object.isRequired
89
+ };
90
+ var _default = exports.default = DrawingResponseComponent;
91
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_renderUi","_styles","_container","StyledUiLayout","styled","UiLayout","color","text","backgroundColor","background","StyledCollapsible","Collapsible","theme","marginBottom","spacing","ErrorDiv","DrawingResponseComponent","React","Component","constructor","props","state","showCorrect","hasError","getDerivedStateFromError","error","errorMessage","message","render","model","extraCSSRules","disabled","imageDimensions","imageUrl","prompt","mode","teacherInstructions","backgroundImageEnabled","language","session","onSessionChange","isEvaluateMode","default","createElement","labels","hidden","visible","PreviewPrompt","tagName","propTypes","PropTypes","object","isRequired","func","_default","exports"],"sources":["../../src/drawing-response/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, Collapsible, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { styled } from '@mui/material/styles';\n\nimport Container from './container';\n\nconst StyledUiLayout = styled(UiLayout)({\n color: color.text(),\n backgroundColor: color.background(),\n});\n\nconst StyledCollapsible = styled(Collapsible)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst ErrorDiv = styled('div')({\n color: color.text(),\n backgroundColor: color.background(),\n});\n\nclass DrawingResponseComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n showCorrect: false,\n hasError: false,\n };\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: true, errorMessage: error.message };\n }\n\n render() {\n const {\n model: {\n extraCSSRules,\n disabled,\n imageDimensions,\n imageUrl,\n prompt,\n mode,\n teacherInstructions,\n backgroundImageEnabled,\n language,\n },\n session,\n onSessionChange,\n } = this.props;\n const { hasError, errorMessage } = this.state;\n const isEvaluateMode = mode === 'evaluate';\n\n return hasError ? (\n <ErrorDiv>An error occured: {errorMessage}</ErrorDiv>\n ) : (\n <StyledUiLayout extraCSSRules={extraCSSRules}>\n {teacherInstructions && (\n <StyledCollapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </StyledCollapsible>\n )}\n\n {prompt && <PreviewPrompt tagName=\"span\" prompt={prompt} />}\n\n <Container\n session={session}\n onSessionChange={onSessionChange}\n isEvaluateMode={isEvaluateMode}\n imageDimensions={imageDimensions}\n imageUrl={imageUrl}\n backgroundImageEnabled={backgroundImageEnabled}\n disabled={disabled}\n language={language}\n />\n </StyledUiLayout>\n );\n }\n}\n\nDrawingResponseComponent.propTypes = {\n model: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func.isRequired,\n session: PropTypes.object.isRequired,\n};\n\nexport default DrawingResponseComponent;\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js ADDED
@@ -0,0 +1,69 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _client = require("react-dom/client");
11
+ var _lodashEs = require("lodash-es");
12
+ var _mathRendering = require("@pie-lib/math-rendering");
13
+ var _piePlayerEvents = require("@pie-framework/pie-player-events");
14
+ var _drawingResponse = _interopRequireDefault(require("./drawing-response"));
15
+ class DrawingResponse extends HTMLElement {
16
+ constructor() {
17
+ super();
18
+ (0, _defineProperty2.default)(this, "sessionChanged", update => {
19
+ this._session.drawables = update.drawables;
20
+ this._session.texts = update.texts;
21
+ this._session.width = update.width;
22
+ this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete()));
23
+ this._render();
24
+ });
25
+ this._root = null;
26
+ }
27
+ set model(m) {
28
+ this._model = m;
29
+ this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), this.isComplete(), !!this._model));
30
+ this._render();
31
+ }
32
+ isComplete() {
33
+ return this._session && (!(0, _lodashEs.isEmpty)(this._session.drawables) || !(0, _lodashEs.isEmpty)(this._session.texts));
34
+ }
35
+ set session(s) {
36
+ this._session = s;
37
+ this._render();
38
+ }
39
+ get session() {
40
+ return this._session;
41
+ }
42
+ connectedCallback() {
43
+ this._render();
44
+ }
45
+ _render() {
46
+ if (this._model && this._session) {
47
+ const el = /*#__PURE__*/_react.default.createElement(_drawingResponse.default, {
48
+ model: this._model,
49
+ session: this._session,
50
+ onSessionChange: this.sessionChanged
51
+ });
52
+ if (!this._root) {
53
+ this._root = (0, _client.createRoot)(this);
54
+ }
55
+ this._root.render(el);
56
+ queueMicrotask(() => {
57
+ (0, _mathRendering.renderMath)(this);
58
+ });
59
+ }
60
+ }
61
+ disconnectedCallback() {
62
+ if (this._root) {
63
+ this._root.unmount();
64
+ this._root = null;
65
+ }
66
+ }
67
+ }
68
+ exports.default = DrawingResponse;
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_lodashEs","_mathRendering","_piePlayerEvents","_drawingResponse","DrawingResponse","HTMLElement","constructor","_defineProperty2","default","update","_session","drawables","texts","width","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","_root","model","m","_model","ModelSetEvent","isEmpty","session","s","connectedCallback","el","React","createElement","DrawingResponseComponent","onSessionChange","sessionChanged","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { isEmpty } from 'lodash-es';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\n\nimport DrawingResponseComponent from './drawing-response';\n\nexport default class DrawingResponse extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n }\n\n set model(m) {\n this._model = m;\n\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), this.isComplete(), !!this._model));\n this._render();\n }\n\n isComplete() {\n return this._session && (!isEmpty(this._session.drawables) || !isEmpty(this._session.texts));\n }\n\n sessionChanged = (update) => {\n this._session.drawables = update.drawables;\n this._session.texts = update.texts;\n this._session.width = update.width;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete()));\n\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 connectedCallback() {\n this._render();\n }\n\n _render() {\n if (this._model && this._session) {\n const el = React.createElement(DrawingResponseComponent, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChanged,\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\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AAEA,IAAAK,gBAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEe,MAAMM,eAAe,SAASC,WAAW,CAAC;EACvDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,0BAeQC,MAAM,IAAK;MAC3B,IAAI,CAACC,QAAQ,CAACC,SAAS,GAAGF,MAAM,CAACE,SAAS;MAC1C,IAAI,CAACD,QAAQ,CAACE,KAAK,GAAGH,MAAM,CAACG,KAAK;MAClC,IAAI,CAACF,QAAQ,CAACG,KAAK,GAAGJ,MAAM,CAACI,KAAK;MAElC,IAAI,CAACC,aAAa,CAAC,IAAIC,oCAAmB,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,UAAU,CAAC,CAAC,CAAC,CAAC;MAE1F,IAAI,CAACC,OAAO,CAAC,CAAC;IAChB,CAAC;IAtBC,IAAI,CAACC,KAAK,GAAG,IAAI;EACnB;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACC,MAAM,GAAGD,CAAC;IAEf,IAAI,CAACR,aAAa,CAAC,IAAIU,8BAAa,CAAC,IAAI,CAACR,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAACK,MAAM,CAAC,CAAC;IACnG,IAAI,CAACJ,OAAO,CAAC,CAAC;EAChB;EAEAD,UAAUA,CAAA,EAAG;IACX,OAAO,IAAI,CAACR,QAAQ,KAAK,CAAC,IAAAe,iBAAO,EAAC,IAAI,CAACf,QAAQ,CAACC,SAAS,CAAC,IAAI,CAAC,IAAAc,iBAAO,EAAC,IAAI,CAACf,QAAQ,CAACE,KAAK,CAAC,CAAC;EAC9F;EAYA,IAAIc,OAAOA,CAACC,CAAC,EAAE;IACb,IAAI,CAACjB,QAAQ,GAAGiB,CAAC;IACjB,IAAI,CAACR,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIO,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAChB,QAAQ;EACtB;EAEAkB,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACT,OAAO,CAAC,CAAC;EAChB;EAEAA,OAAOA,CAAA,EAAG;IACR,IAAI,IAAI,CAACI,MAAM,IAAI,IAAI,CAACb,QAAQ,EAAE;MAChC,MAAMmB,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,wBAAwB,EAAE;QACvDX,KAAK,EAAE,IAAI,CAACE,MAAM;QAClBG,OAAO,EAAE,IAAI,CAAChB,QAAQ;QACtBuB,eAAe,EAAE,IAAI,CAACC;MACxB,CAAC,CAAC;MAEF,IAAI,CAAC,IAAI,CAACd,KAAK,EAAE;QACf,IAAI,CAACA,KAAK,GAAG,IAAAe,kBAAU,EAAC,IAAI,CAAC;MAC/B;MACA,IAAI,CAACf,KAAK,CAACgB,MAAM,CAACP,EAAE,CAAC;MACrBQ,cAAc,CAAC,MAAM;QACnB,IAAAC,yBAAU,EAAC,IAAI,CAAC;MAClB,CAAC,CAAC;IACJ;EACF;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACnB,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACoB,OAAO,CAAC,CAAC;MACpB,IAAI,CAACpB,KAAK,GAAG,IAAI;IACnB;EACF;AACF;AAACqB,OAAA,CAAAjC,OAAA,GAAAJ,eAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/drawing-response",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "12.2.2-beta.6",
4
+ "version": "12.2.2-beta.8",
5
5
  "description": "",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "author": "pie framework developers",
28
28
  "license": "ISC",
29
- "gitHead": "c6bbb21417c58eaf8f617143437fb3ff85ae1cb4",
29
+ "gitHead": "675f5eade074184bdce556c2fac16b95d2bf1c60",
30
30
  "scripts": {
31
31
  "postpublish": "../../scripts/postpublish"
32
32
  },