@pie-element/drawing-response 12.1.1 → 12.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 (172) hide show
  1. package/configure.js +2 -0
  2. package/controller.js +1 -0
  3. package/dist/author/button.d.ts +29 -0
  4. package/dist/author/button.js +25 -0
  5. package/dist/author/defaults.d.ts +118 -0
  6. package/dist/author/defaults.js +86 -0
  7. package/dist/author/image-container.d.ts +42 -0
  8. package/dist/author/image-container.js +183 -0
  9. package/dist/author/index.d.ts +37 -0
  10. package/dist/author/index.js +79 -0
  11. package/dist/author/root.d.ts +17 -0
  12. package/dist/author/root.js +142 -0
  13. package/dist/browser/MenuItem-DbAfJgc1.js +10476 -0
  14. package/dist/browser/MenuItem-DbAfJgc1.js.map +1 -0
  15. package/dist/browser/author/index.js +37837 -0
  16. package/dist/browser/author/index.js.map +1 -0
  17. package/dist/browser/browser-kkT1XVKw.js +219 -0
  18. package/dist/browser/browser-kkT1XVKw.js.map +1 -0
  19. package/dist/browser/controller/index.js +61 -0
  20. package/dist/browser/controller/index.js.map +1 -0
  21. package/dist/browser/delivery/index.js +13560 -0
  22. package/dist/browser/delivery/index.js.map +1 -0
  23. package/dist/browser/drawing-response.css +2 -0
  24. package/dist/controller/defaults.d.ts +24 -0
  25. package/dist/controller/defaults.js +18 -0
  26. package/dist/controller/index.d.ts +13 -0
  27. package/dist/controller/index.js +46 -0
  28. package/dist/delivery/drawing-response/button.d.ts +31 -0
  29. package/dist/delivery/drawing-response/button.js +36 -0
  30. package/dist/delivery/drawing-response/constants.d.ts +16 -0
  31. package/dist/delivery/drawing-response/constants.js +40 -0
  32. package/dist/delivery/drawing-response/container.d.ts +32 -0
  33. package/dist/delivery/drawing-response/container.js +212 -0
  34. package/dist/delivery/drawing-response/drawable-circle.d.ts +18 -0
  35. package/dist/delivery/drawing-response/drawable-circle.js +51 -0
  36. package/dist/delivery/drawing-response/drawable-eraser.d.ts +17 -0
  37. package/dist/delivery/drawing-response/drawable-eraser.js +52 -0
  38. package/dist/delivery/drawing-response/drawable-free-path.d.ts +18 -0
  39. package/dist/delivery/drawing-response/drawable-free-path.js +52 -0
  40. package/dist/delivery/drawing-response/drawable-helper.d.ts +17 -0
  41. package/dist/delivery/drawing-response/drawable-helper.js +12 -0
  42. package/dist/delivery/drawing-response/drawable-image.d.ts +24 -0
  43. package/dist/delivery/drawing-response/drawable-image.js +28 -0
  44. package/dist/delivery/drawing-response/drawable-line.d.ts +18 -0
  45. package/dist/delivery/drawing-response/drawable-line.js +53 -0
  46. package/dist/delivery/drawing-response/drawable-main.d.ts +25 -0
  47. package/dist/delivery/drawing-response/drawable-main.js +210 -0
  48. package/dist/delivery/drawing-response/drawable-palette.d.ts +14 -0
  49. package/dist/delivery/drawing-response/drawable-palette.js +89 -0
  50. package/dist/delivery/drawing-response/drawable-rectangle.d.ts +18 -0
  51. package/dist/delivery/drawing-response/drawable-rectangle.js +49 -0
  52. package/dist/delivery/drawing-response/drawable-text.d.ts +30 -0
  53. package/dist/delivery/drawing-response/drawable-text.js +189 -0
  54. package/dist/delivery/drawing-response/drawable-transformer.d.ts +16 -0
  55. package/dist/delivery/drawing-response/drawable-transformer.js +35 -0
  56. package/dist/delivery/drawing-response/factory.d.ts +11 -0
  57. package/dist/delivery/drawing-response/factory.js +19 -0
  58. package/dist/delivery/drawing-response/icon.d.ts +19 -0
  59. package/dist/delivery/drawing-response/icon.js +52 -0
  60. package/dist/delivery/drawing-response/index.d.ts +18 -0
  61. package/dist/delivery/drawing-response/index.js +70 -0
  62. package/dist/delivery/index.d.ts +19 -0
  63. package/dist/delivery/index.js +47 -0
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.iife.d.ts +8 -0
  66. package/dist/index.iife.js +165 -0
  67. package/dist/index.js +2 -0
  68. package/dist/runtime-support.d.ts +12 -0
  69. package/dist/runtime-support.js +12 -0
  70. package/package.json +84 -20
  71. package/CHANGELOG.json +0 -547
  72. package/CHANGELOG.md +0 -1960
  73. package/LICENSE.md +0 -5
  74. package/README.md +0 -1
  75. package/configure/CHANGELOG.json +0 -367
  76. package/configure/CHANGELOG.md +0 -1760
  77. package/configure/lib/button.js +0 -37
  78. package/configure/lib/button.js.map +0 -1
  79. package/configure/lib/defaults.js +0 -116
  80. package/configure/lib/defaults.js.map +0 -1
  81. package/configure/lib/image-container.js +0 -307
  82. package/configure/lib/image-container.js.map +0 -1
  83. package/configure/lib/index.js +0 -147
  84. package/configure/lib/index.js.map +0 -1
  85. package/configure/lib/root.js +0 -219
  86. package/configure/lib/root.js.map +0 -1
  87. package/configure/package.json +0 -24
  88. package/configure/src/__tests__/image-container.test.jsx +0 -231
  89. package/configure/src/__tests__/index.test.js +0 -72
  90. package/configure/src/__tests__/root.test.jsx +0 -110
  91. package/configure/src/button.jsx +0 -33
  92. package/configure/src/defaults.js +0 -80
  93. package/configure/src/image-container.jsx +0 -316
  94. package/configure/src/index.js +0 -167
  95. package/configure/src/root.jsx +0 -198
  96. package/controller/CHANGELOG.json +0 -52
  97. package/controller/CHANGELOG.md +0 -261
  98. package/controller/lib/defaults.js +0 -22
  99. package/controller/lib/defaults.js.map +0 -1
  100. package/controller/lib/index.js +0 -84
  101. package/controller/lib/index.js.map +0 -1
  102. package/controller/package.json +0 -16
  103. package/controller/src/__tests__/index.test.js +0 -172
  104. package/controller/src/defaults.js +0 -12
  105. package/controller/src/index.js +0 -71
  106. package/docs/config-schema.json +0 -1766
  107. package/docs/config-schema.json.md +0 -1313
  108. package/docs/demo/config.js +0 -8
  109. package/docs/demo/generate.js +0 -14
  110. package/docs/demo/index.html +0 -1
  111. package/docs/demo/session.js +0 -37
  112. package/docs/pie-schema.json +0 -823
  113. package/docs/pie-schema.json.md +0 -606
  114. package/lib/drawing-response/button.js +0 -49
  115. package/lib/drawing-response/button.js.map +0 -1
  116. package/lib/drawing-response/constants.js +0 -43
  117. package/lib/drawing-response/constants.js.map +0 -1
  118. package/lib/drawing-response/container.js +0 -327
  119. package/lib/drawing-response/container.js.map +0 -1
  120. package/lib/drawing-response/drawable-circle.js +0 -80
  121. package/lib/drawing-response/drawable-circle.js.map +0 -1
  122. package/lib/drawing-response/drawable-eraser.js +0 -64
  123. package/lib/drawing-response/drawable-eraser.js.map +0 -1
  124. package/lib/drawing-response/drawable-free-path.js +0 -71
  125. package/lib/drawing-response/drawable-free-path.js.map +0 -1
  126. package/lib/drawing-response/drawable-helper.js +0 -34
  127. package/lib/drawing-response/drawable-helper.js.map +0 -1
  128. package/lib/drawing-response/drawable-image.js +0 -41
  129. package/lib/drawing-response/drawable-image.js.map +0 -1
  130. package/lib/drawing-response/drawable-line.js +0 -75
  131. package/lib/drawing-response/drawable-line.js.map +0 -1
  132. package/lib/drawing-response/drawable-main.js +0 -345
  133. package/lib/drawing-response/drawable-main.js.map +0 -1
  134. package/lib/drawing-response/drawable-palette.js +0 -140
  135. package/lib/drawing-response/drawable-palette.js.map +0 -1
  136. package/lib/drawing-response/drawable-rectangle.js +0 -80
  137. package/lib/drawing-response/drawable-rectangle.js.map +0 -1
  138. package/lib/drawing-response/drawable-text.js +0 -295
  139. package/lib/drawing-response/drawable-text.js.map +0 -1
  140. package/lib/drawing-response/drawable-transformer.js +0 -52
  141. package/lib/drawing-response/drawable-transformer.js.map +0 -1
  142. package/lib/drawing-response/factory.js +0 -22
  143. package/lib/drawing-response/factory.js.map +0 -1
  144. package/lib/drawing-response/icon.js +0 -55
  145. package/lib/drawing-response/icon.js.map +0 -1
  146. package/lib/drawing-response/index.js +0 -91
  147. package/lib/drawing-response/index.js.map +0 -1
  148. package/lib/index.js +0 -68
  149. package/lib/index.js.map +0 -1
  150. package/src/__tests__/drawing-index-test.jsx +0 -103
  151. package/src/drawing-response/__tests__/container.test.jsx +0 -82
  152. package/src/drawing-response/__tests__/drawable-helper.test.jsx +0 -24
  153. package/src/drawing-response/__tests__/drawing-main.test.jsx +0 -855
  154. package/src/drawing-response/__tests__/factory.test.js +0 -13
  155. package/src/drawing-response/button.jsx +0 -45
  156. package/src/drawing-response/constants.js +0 -44
  157. package/src/drawing-response/container.jsx +0 -301
  158. package/src/drawing-response/drawable-circle.jsx +0 -74
  159. package/src/drawing-response/drawable-eraser.jsx +0 -53
  160. package/src/drawing-response/drawable-free-path.jsx +0 -59
  161. package/src/drawing-response/drawable-helper.jsx +0 -21
  162. package/src/drawing-response/drawable-image.jsx +0 -36
  163. package/src/drawing-response/drawable-line.jsx +0 -62
  164. package/src/drawing-response/drawable-main.jsx +0 -333
  165. package/src/drawing-response/drawable-palette.jsx +0 -99
  166. package/src/drawing-response/drawable-rectangle.jsx +0 -69
  167. package/src/drawing-response/drawable-text.jsx +0 -318
  168. package/src/drawing-response/drawable-transformer.jsx +0 -52
  169. package/src/drawing-response/factory.js +0 -17
  170. package/src/drawing-response/icon.jsx +0 -52
  171. package/src/drawing-response/index.jsx +0 -92
  172. package/src/index.js +0 -72
@@ -1,91 +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 _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
@@ -1 +0,0 @@
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 DELETED
@@ -1,68 +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 _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
- }
65
- }
66
- }
67
- exports.default = DrawingResponse;
68
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
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 }\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;IACtB;EACF;AACF;AAACC,OAAA,CAAAjC,OAAA,GAAAJ,eAAA","ignoreList":[]}
@@ -1,103 +0,0 @@
1
- import React from 'react';
2
- import { render, screen } from '@testing-library/react';
3
- import DrawingResponse from '../drawing-response';
4
-
5
- // Mock @pie-lib/render-ui
6
- jest.mock('@pie-lib/render-ui', () => ({
7
- color: {
8
- text: () => '#000',
9
- background: () => '#fff',
10
- },
11
- Collapsible: ({ children, labels }) => (
12
- <div data-testid="collapsible">
13
- <button>{labels.hidden}</button>
14
- {children}
15
- </div>
16
- ),
17
- PreviewPrompt: ({ prompt }) => <span data-testid="preview-prompt">{prompt}</span>,
18
- UiLayout: ({ children }) => <div data-testid="ui-layout">{children}</div>,
19
- }));
20
-
21
- // Mock the Container component since it has complex dependencies
22
- jest.mock('../drawing-response/container', () => {
23
- return function MockContainer() {
24
- return <div data-testid="drawing-container">Drawing Container</div>;
25
- };
26
- });
27
-
28
- describe('DrawingResponse', () => {
29
- const defaultProps = {
30
- model: {
31
- disabled: false,
32
- imageDimensions: {
33
- height: 400,
34
- width: 600,
35
- },
36
- imageUrl: 'http://example.com/image.png',
37
- mode: 'gather',
38
- prompt: 'Draw your response',
39
- backgroundImageEnabled: true,
40
- },
41
- session: {},
42
- onSessionChange: jest.fn(),
43
- };
44
-
45
- const renderDrawingResponse = (propsOverrides = {}) => {
46
- const props = { ...defaultProps, ...propsOverrides };
47
- return render(<DrawingResponse {...props} />);
48
- };
49
-
50
- describe('prompt', () => {
51
- it('displays the prompt', () => {
52
- renderDrawingResponse();
53
- expect(screen.getByText('Draw your response')).toBeInTheDocument();
54
- });
55
-
56
- it('does not render prompt when not provided', () => {
57
- renderDrawingResponse({
58
- model: { ...defaultProps.model, prompt: '' },
59
- });
60
- // PreviewPrompt should not be in the document when prompt is empty
61
- const prompts = screen.queryAllByTestId('preview-prompt');
62
- expect(prompts.every(p => p.textContent !== 'Draw your response')).toBe(true);
63
- });
64
- });
65
-
66
- describe('teacher instructions', () => {
67
- it('does not show collapsible when teacherInstructions is not provided', () => {
68
- renderDrawingResponse();
69
- expect(screen.queryByTestId('collapsible')).not.toBeInTheDocument();
70
- });
71
-
72
- it('shows collapsible when teacherInstructions is provided', () => {
73
- renderDrawingResponse({
74
- model: { ...defaultProps.model, teacherInstructions: 'Grade based on creativity' },
75
- });
76
- expect(screen.getByTestId('collapsible')).toBeInTheDocument();
77
- expect(screen.getByText('Grade based on creativity')).toBeInTheDocument();
78
- });
79
- });
80
-
81
- describe('container', () => {
82
- it('renders the drawing container', () => {
83
- renderDrawingResponse();
84
- expect(screen.getByTestId('drawing-container')).toBeInTheDocument();
85
- });
86
- });
87
-
88
- describe('modes', () => {
89
- it('renders in gather mode', () => {
90
- renderDrawingResponse({
91
- model: { ...defaultProps.model, mode: 'gather' },
92
- });
93
- expect(screen.getByTestId('ui-layout')).toBeInTheDocument();
94
- });
95
-
96
- it('renders in evaluate mode', () => {
97
- renderDrawingResponse({
98
- model: { ...defaultProps.model, mode: 'evaluate' },
99
- });
100
- expect(screen.getByTestId('ui-layout')).toBeInTheDocument();
101
- });
102
- });
103
- });
@@ -1,82 +0,0 @@
1
- import { render } from '@testing-library/react';
2
- import React from 'react';
3
- import { ThemeProvider, createTheme } from '@mui/material/styles';
4
-
5
- import { Container } from '../container';
6
-
7
- jest.mock('../drawable-palette', () => (props) => <div data-testid="drawable-palette" {...props} />);
8
- jest.mock('../drawable-main', () => (props) => <div data-testid="drawable-main" {...props} />);
9
- jest.mock('../drawable-text', () =>
10
- jest.fn().mockImplementation(() => ({
11
- removeEventListeners: jest.fn(),
12
- }))
13
- );
14
- jest.mock('../button', () => (props) => <button {...props}>{props.label}</button>);
15
- jest.mock('../icon', () => (props) => <span {...props} />);
16
-
17
- const theme = createTheme();
18
-
19
- beforeEach(() => {
20
- jest.useFakeTimers();
21
- });
22
-
23
- afterEach(() => {
24
- jest.useRealTimers();
25
- });
26
-
27
- describe('Container', () => {
28
- let onSessionChange = jest.fn();
29
-
30
- beforeEach(() => {
31
- jest.clearAllMocks();
32
- });
33
-
34
- const renderContainer = (props = {}) => {
35
- const defaultProps = {
36
- className: 'className',
37
- onSessionChange,
38
- imageDimensions: {},
39
- imageUrl: 'url',
40
- session: {},
41
- backgroundImageEnabled: true,
42
- ...props,
43
- };
44
- return render(
45
- <ThemeProvider theme={theme}>
46
- <Container {...defaultProps} />
47
- </ThemeProvider>
48
- );
49
- };
50
-
51
- describe('logic', () => {
52
- describe('setDimensions', () => {
53
- it('handles errors and clears interval', () => {
54
- // Create a container instance directly to test the setDimensions method
55
- const testInstance = new Container({
56
- onSessionChange,
57
- imageDimensions: {},
58
- imageUrl: 'url',
59
- session: {},
60
- backgroundImageEnabled: true,
61
- });
62
-
63
- // Set drawable to undefined to trigger error handling
64
- testInstance.drawable = undefined;
65
-
66
- // Spy on clearInterval
67
- const clearIntervalSpy = jest.spyOn(global, 'clearInterval');
68
-
69
- // Call setDimensions which should handle the error and clear the interval
70
- testInstance.setDimensions();
71
-
72
- // Run all timers to execute the setInterval callback
73
- jest.runAllTimers();
74
-
75
- // Verify clearInterval was called
76
- expect(clearIntervalSpy).toHaveBeenCalled();
77
-
78
- clearIntervalSpy.mockRestore();
79
- });
80
- });
81
- });
82
- });
@@ -1,24 +0,0 @@
1
- import DrawableHelper from '../drawable-helper';
2
-
3
- describe('DrawableHelper', () => {
4
- describe('toJson', () => {
5
- it('emits json', () => {
6
- class Foo extends DrawableHelper {
7
- constructor(props) {
8
- super(props, 'FOO_TYPE');
9
-
10
- this.foo = 'bar';
11
- }
12
- }
13
-
14
- const foo = new Foo({});
15
-
16
- const o = foo.toJson();
17
-
18
- expect(o).toEqual({
19
- type: 'FOO_TYPE',
20
- foo: 'bar',
21
- });
22
- });
23
- });
24
- });