@pie-element/graphing 10.1.2-next.5 → 10.1.3

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 (86) hide show
  1. package/CHANGELOG.json +652 -0
  2. package/CHANGELOG.md +2055 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +1 -0
  5. package/configure/CHANGELOG.json +382 -0
  6. package/configure/CHANGELOG.md +1846 -0
  7. package/configure/lib/configure.js +328 -0
  8. package/configure/lib/configure.js.map +1 -0
  9. package/configure/lib/correct-response.js +484 -0
  10. package/configure/lib/correct-response.js.map +1 -0
  11. package/configure/lib/defaults.js +448 -0
  12. package/configure/lib/defaults.js.map +1 -0
  13. package/configure/lib/graphing-config.js +388 -0
  14. package/configure/lib/graphing-config.js.map +1 -0
  15. package/configure/lib/index.js +173 -0
  16. package/configure/lib/index.js.map +1 -0
  17. package/configure/lib/utils.js +122 -0
  18. package/configure/lib/utils.js.map +1 -0
  19. package/configure/package.json +30 -0
  20. package/controller/CHANGELOG.json +412 -0
  21. package/controller/CHANGELOG.md +1267 -0
  22. package/controller/lib/defaults.js +64 -0
  23. package/controller/lib/defaults.js.map +1 -0
  24. package/controller/lib/index.js +459 -0
  25. package/controller/lib/index.js.map +1 -0
  26. package/controller/lib/utils.js +451 -0
  27. package/controller/lib/utils.js.map +1 -0
  28. package/controller/package.json +24 -0
  29. package/docs/config-schema.json +3164 -0
  30. package/docs/config-schema.json.md +2293 -0
  31. package/docs/demo/config.js +8 -0
  32. package/docs/demo/generate.js +200 -0
  33. package/docs/demo/index.html +1 -0
  34. package/docs/demo/session.js +20 -0
  35. package/docs/pie-schema.json +3495 -0
  36. package/docs/pie-schema.json.md +1345 -0
  37. package/lib/index.js +69 -0
  38. package/lib/index.js.map +1 -0
  39. package/lib/main.js +161 -0
  40. package/lib/main.js.map +1 -0
  41. package/lib/utils.js +24 -0
  42. package/lib/utils.js.map +1 -0
  43. package/package.json +21 -87
  44. package/configure.js +0 -2
  45. package/controller.js +0 -1
  46. package/dist/author/configure.d.ts +0 -26
  47. package/dist/author/configure.js +0 -208
  48. package/dist/author/correct-response.d.ts +0 -54
  49. package/dist/author/correct-response.js +0 -303
  50. package/dist/author/defaults.d.ts +0 -294
  51. package/dist/author/defaults.js +0 -415
  52. package/dist/author/graphing-config.d.ts +0 -34
  53. package/dist/author/graphing-config.js +0 -244
  54. package/dist/author/index.d.ts +0 -59
  55. package/dist/author/index.js +0 -96
  56. package/dist/author/utils.d.ts +0 -43
  57. package/dist/author/utils.js +0 -260
  58. package/dist/browser/author/index.js +0 -4480
  59. package/dist/browser/author/index.js.map +0 -1
  60. package/dist/browser/container-CTkqz7Oi.js +0 -63877
  61. package/dist/browser/container-CTkqz7Oi.js.map +0 -1
  62. package/dist/browser/controller/index.js +0 -353
  63. package/dist/browser/controller/index.js.map +0 -1
  64. package/dist/browser/delivery/index.js +0 -683
  65. package/dist/browser/delivery/index.js.map +0 -1
  66. package/dist/browser/dist-B7TYAggd.js +0 -551
  67. package/dist/browser/dist-B7TYAggd.js.map +0 -1
  68. package/dist/browser/graphing.css +0 -2
  69. package/dist/controller/defaults.d.ts +0 -59
  70. package/dist/controller/defaults.js +0 -61
  71. package/dist/controller/index.d.ts +0 -34
  72. package/dist/controller/index.js +0 -179
  73. package/dist/controller/utils.d.ts +0 -37
  74. package/dist/controller/utils.js +0 -111
  75. package/dist/delivery/index.d.ts +0 -21
  76. package/dist/delivery/index.js +0 -43
  77. package/dist/delivery/main.d.ts +0 -23
  78. package/dist/delivery/main.js +0 -107
  79. package/dist/delivery/utils.d.ts +0 -22
  80. package/dist/graphing.css +0 -2
  81. package/dist/index.d.ts +0 -1
  82. package/dist/index.iife.d.ts +0 -8
  83. package/dist/index.iife.js +0 -414
  84. package/dist/index.js +0 -2
  85. package/dist/runtime-support.d.ts +0 -12
  86. package/dist/runtime-support.js +0 -12
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
+ Object.defineProperty(exports, "Component", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _main.default;
11
+ }
12
+ });
13
+ exports.default = void 0;
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _client = require("react-dom/client");
17
+ var _piePlayerEvents = require("@pie-framework/pie-player-events");
18
+ var _mathRendering = require("@pie-lib/math-rendering");
19
+ var _main = _interopRequireDefault(require("./main"));
20
+ class Graphing extends HTMLElement {
21
+ constructor() {
22
+ super();
23
+ (0, _defineProperty2.default)(this, "isComplete", answer => Array.isArray(answer) && answer.length > 0);
24
+ (0, _defineProperty2.default)(this, "changeAnswers", answer => {
25
+ this._session.answer = answer;
26
+ this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));
27
+ this._render();
28
+ });
29
+ this._root = null;
30
+ }
31
+ set model(m) {
32
+ this._model = m;
33
+ this._render();
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
+ return;
48
+ }
49
+ const el = /*#__PURE__*/_react.default.createElement(_main.default, {
50
+ model: this._model,
51
+ session: this._session,
52
+ onAnswersChange: this.changeAnswers
53
+ });
54
+ if (!this._root) {
55
+ this._root = (0, _client.createRoot)(this);
56
+ }
57
+ this._root.render(el);
58
+ queueMicrotask(() => {
59
+ (0, _mathRendering.renderMath)(this);
60
+ });
61
+ }
62
+ disconnectedCallback() {
63
+ if (this._root) {
64
+ this._root.unmount();
65
+ }
66
+ }
67
+ }
68
+ exports.default = Graphing;
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_mathRendering","_main","Graphing","HTMLElement","constructor","_defineProperty2","default","answer","Array","isArray","length","_session","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","_root","model","m","_model","session","s","connectedCallback","el","React","createElement","Main","onAnswersChange","changeAnswers","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","exports"],"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';\n\nimport Main from './main';\n\nexport { Main as Component };\n\nexport default class Graphing 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 connectedCallback() {\n this._render();\n }\n\n isComplete = (answer) => Array.isArray(answer) && answer.length > 0;\n\n changeAnswers = (answer) => {\n this._session.answer = answer;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));\n\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 onAnswersChange: this.changeAnswers,\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":";;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AAIe,MAAMK,QAAQ,SAASC,WAAW,CAAC;EAChDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,sBAsBIC,MAAM,IAAKC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,IAAIA,MAAM,CAACG,MAAM,GAAG,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,yBAElDC,MAAM,IAAK;MAC1B,IAAI,CAACI,QAAQ,CAACJ,MAAM,GAAGA,MAAM;MAE7B,IAAI,CAACK,aAAa,CAAC,IAAIC,oCAAmB,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,UAAU,CAAC,IAAI,CAACL,QAAQ,CAACJ,MAAM,CAAC,CAAC,CAAC;MAE9G,IAAI,CAACU,OAAO,CAAC,CAAC;IAChB,CAAC;IA7BC,IAAI,CAACC,KAAK,GAAG,IAAI;EACnB;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACC,MAAM,GAAGD,CAAC;IACf,IAAI,CAACH,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIK,OAAOA,CAACC,CAAC,EAAE;IACb,IAAI,CAACZ,QAAQ,GAAGY,CAAC;IACjB,IAAI,CAACN,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIK,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACX,QAAQ;EACtB;EAEAa,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACP,OAAO,CAAC,CAAC;EAChB;EAYAA,OAAOA,CAAA,EAAG;IACR,IAAI,CAAC,IAAI,CAACI,MAAM,IAAI,CAAC,IAAI,CAACV,QAAQ,EAAE;MAClC;IACF;IAEA,MAAMc,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,aAAI,EAAE;MACnCT,KAAK,EAAE,IAAI,CAACE,MAAM;MAClBC,OAAO,EAAE,IAAI,CAACX,QAAQ;MACtBkB,eAAe,EAAE,IAAI,CAACC;IACxB,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAACZ,KAAK,EAAE;MACf,IAAI,CAACA,KAAK,GAAG,IAAAa,kBAAU,EAAC,IAAI,CAAC;IAC/B;IACA,IAAI,CAACb,KAAK,CAACc,MAAM,CAACP,EAAE,CAAC;IACrBQ,cAAc,CAAC,MAAM;MACnB,IAAAC,yBAAU,EAAC,IAAI,CAAC;IAClB,CAAC,CAAC;EACJ;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACjB,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACkB,OAAO,CAAC,CAAC;IACtB;EACF;AACF;AAACC,OAAA,CAAA/B,OAAA,GAAAJ,QAAA","ignoreList":[]}
package/lib/main.js ADDED
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.Main = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _styles = require("@mui/material/styles");
12
+ var _graphing = require("@pie-lib/graphing");
13
+ var _renderUi = require("@pie-lib/render-ui");
14
+ var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
15
+ const MainContainer = (0, _styles.styled)(_renderUi.UiLayout)({
16
+ color: _renderUi.color.text(),
17
+ backgroundColor: _renderUi.color.background()
18
+ });
19
+ const TeacherInstructions = (0, _styles.styled)(_renderUi.Collapsible)(({
20
+ theme
21
+ }) => ({
22
+ marginBottom: theme.spacing(2)
23
+ }));
24
+ const Graph = (0, _styles.styled)(_graphing.GraphContainer)(({
25
+ theme
26
+ }) => ({
27
+ marginTop: theme.spacing(2),
28
+ marginBottom: theme.spacing(2)
29
+ }));
30
+ class Main extends _react.default.Component {
31
+ constructor(...args) {
32
+ super(...args);
33
+ (0, _defineProperty2.default)(this, "state", {
34
+ showingCorrect: false
35
+ });
36
+ (0, _defineProperty2.default)(this, "toggleCorrect", showingCorrect => this.setState({
37
+ showingCorrect
38
+ }));
39
+ }
40
+ render() {
41
+ const {
42
+ model,
43
+ onAnswersChange,
44
+ session
45
+ } = this.props;
46
+ const {
47
+ showingCorrect
48
+ } = this.state;
49
+ const {
50
+ answer
51
+ } = session || {};
52
+ const {
53
+ answersCorrected,
54
+ arrows,
55
+ backgroundMarks,
56
+ coordinatesOnHover,
57
+ correctResponse,
58
+ defaultTool,
59
+ disabled,
60
+ domain,
61
+ extraCSSRules,
62
+ labels,
63
+ labelsEnabled,
64
+ prompt,
65
+ range,
66
+ rationale,
67
+ showKeyLegend,
68
+ showToggle,
69
+ title,
70
+ titleEnabled,
71
+ teacherInstructions,
72
+ toolbarTools,
73
+ language
74
+ } = model || {};
75
+ const size = model?.size || model?.graph || {}; // need this for models that are not processed by controller
76
+ const marks = answersCorrected || answer || [];
77
+ const isLabelAvailable = toolbarTools?.includes('label') || false;
78
+ const showRationale = model.rationale && ((0, _renderUi.hasText)(model.rationale) || (0, _renderUi.hasMedia)(model.rationale));
79
+ const showTeacherInstructions = model.teacherInstructions && ((0, _renderUi.hasText)(model.teacherInstructions) || (0, _renderUi.hasMedia)(model.teacherInstructions));
80
+ return /*#__PURE__*/_react.default.createElement(MainContainer, {
81
+ extraCSSRules: extraCSSRules
82
+ }, showTeacherInstructions && /*#__PURE__*/_react.default.createElement(TeacherInstructions, {
83
+ labels: {
84
+ hidden: 'Show Teacher Instructions',
85
+ visible: 'Hide Teacher Instructions'
86
+ }
87
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
88
+ prompt: teacherInstructions
89
+ })), prompt && /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
90
+ className: "prompt",
91
+ prompt: prompt
92
+ }), /*#__PURE__*/_react.default.createElement(_correctAnswerToggle.default, {
93
+ show: showToggle,
94
+ toggled: showingCorrect,
95
+ onToggle: this.toggleCorrect,
96
+ language: language
97
+ }), showingCorrect && showToggle ? /*#__PURE__*/_react.default.createElement(Graph, {
98
+ axesSettings: {
99
+ includeArrows: arrows
100
+ },
101
+ backgroundMarks: backgroundMarks.filter(mark => !mark.building),
102
+ coordinatesOnHover: coordinatesOnHover,
103
+ disabled: true,
104
+ disabledLabels: true,
105
+ disabledTitle: true,
106
+ domain: domain,
107
+ labels: labels,
108
+ marks: correctResponse.map(i => ({
109
+ ...i,
110
+ correctness: 'correct'
111
+ })),
112
+ onChangeMarks: onAnswersChange,
113
+ range: range,
114
+ showLabels: labelsEnabled,
115
+ showTitle: titleEnabled,
116
+ size: size,
117
+ title: title,
118
+ toolbarTools: toolbarTools,
119
+ language: language
120
+ }) : /*#__PURE__*/_react.default.createElement(Graph, {
121
+ axesSettings: {
122
+ includeArrows: arrows
123
+ },
124
+ backgroundMarks: backgroundMarks.filter(mark => !mark.building),
125
+ coordinatesOnHover: coordinatesOnHover,
126
+ defaultTool: defaultTool,
127
+ disabled: disabled,
128
+ disabledLabels: true,
129
+ disabledTitle: true,
130
+ domain: domain,
131
+ labels: labels,
132
+ marks: marks,
133
+ onChangeMarks: onAnswersChange,
134
+ range: range,
135
+ showLabels: labelsEnabled,
136
+ showTitle: titleEnabled,
137
+ size: size,
138
+ title: title,
139
+ toolbarTools: toolbarTools,
140
+ language: language,
141
+ limitLabeling: true
142
+ }), showKeyLegend && !showingCorrect && /*#__PURE__*/_react.default.createElement(_graphing.KeyLegend, {
143
+ isLabelAvailable: isLabelAvailable
144
+ }), showRationale && /*#__PURE__*/_react.default.createElement(_renderUi.Collapsible, {
145
+ labels: {
146
+ hidden: 'Show Rationale',
147
+ visible: 'Hide Rationale'
148
+ }
149
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
150
+ prompt: rationale
151
+ })));
152
+ }
153
+ }
154
+ exports.Main = Main;
155
+ (0, _defineProperty2.default)(Main, "propTypes", {
156
+ model: _propTypes.default.object.isRequired,
157
+ session: _propTypes.default.object.isRequired,
158
+ onAnswersChange: _propTypes.default.func
159
+ });
160
+ var _default = exports.default = Main;
161
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_graphing","_renderUi","_correctAnswerToggle","MainContainer","styled","UiLayout","color","text","backgroundColor","background","TeacherInstructions","Collapsible","theme","marginBottom","spacing","Graph","GraphContainer","marginTop","Main","React","Component","constructor","args","_defineProperty2","default","showingCorrect","setState","render","model","onAnswersChange","session","props","state","answer","answersCorrected","arrows","backgroundMarks","coordinatesOnHover","correctResponse","defaultTool","disabled","domain","extraCSSRules","labels","labelsEnabled","prompt","range","rationale","showKeyLegend","showToggle","title","titleEnabled","teacherInstructions","toolbarTools","language","size","graph","marks","isLabelAvailable","includes","showRationale","hasText","hasMedia","showTeacherInstructions","createElement","hidden","visible","PreviewPrompt","className","show","toggled","onToggle","toggleCorrect","axesSettings","includeArrows","filter","mark","building","disabledLabels","disabledTitle","map","i","correctness","onChangeMarks","showLabels","showTitle","limitLabeling","KeyLegend","exports","PropTypes","object","isRequired","func","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { GraphContainer, KeyLegend } from '@pie-lib/graphing';\nimport { color, Collapsible, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\n\nconst MainContainer = styled(UiLayout)({\n color: color.text(),\n backgroundColor: color.background(),\n});\n\nconst TeacherInstructions = styled(Collapsible)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst Graph = styled(GraphContainer)(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n session: PropTypes.object.isRequired,\n onAnswersChange: PropTypes.func,\n };\n\n state = { showingCorrect: false };\n\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n render() {\n const { model, onAnswersChange, session } = this.props;\n const { showingCorrect } = this.state;\n const { answer } = session || {};\n const {\n answersCorrected,\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n correctResponse,\n defaultTool,\n disabled,\n domain,\n extraCSSRules,\n labels,\n labelsEnabled,\n prompt,\n range,\n rationale,\n showKeyLegend,\n showToggle,\n title,\n titleEnabled,\n teacherInstructions,\n toolbarTools,\n language,\n } = model || {};\n const size = model?.size || model?.graph || {}; // need this for models that are not processed by controller\n const marks = answersCorrected || answer || [];\n const isLabelAvailable = toolbarTools?.includes('label') || false;\n const showRationale = model.rationale && (hasText(model.rationale) || hasMedia(model.rationale));\n const showTeacherInstructions =\n model.teacherInstructions && (hasText(model.teacherInstructions) || hasMedia(model.teacherInstructions));\n\n return (\n <MainContainer extraCSSRules={extraCSSRules}>\n {showTeacherInstructions && (\n <TeacherInstructions\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </TeacherInstructions>\n )}\n\n {prompt && <PreviewPrompt className=\"prompt\" prompt={prompt} />}\n\n <CorrectAnswerToggle\n show={showToggle}\n toggled={showingCorrect}\n onToggle={this.toggleCorrect}\n language={language}\n />\n\n {showingCorrect && showToggle ? (\n <Graph\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks.filter((mark) => !mark.building)}\n coordinatesOnHover={coordinatesOnHover}\n disabled={true}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n labels={labels}\n marks={correctResponse.map((i) => ({ ...i, correctness: 'correct' }))}\n onChangeMarks={onAnswersChange}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={size}\n title={title}\n toolbarTools={toolbarTools}\n language={language}\n />\n ) : (\n <Graph\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks.filter((mark) => !mark.building)}\n coordinatesOnHover={coordinatesOnHover}\n defaultTool={defaultTool}\n disabled={disabled}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n labels={labels}\n marks={marks}\n onChangeMarks={onAnswersChange}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={size}\n title={title}\n toolbarTools={toolbarTools}\n language={language}\n limitLabeling={true}\n />\n )}\n {showKeyLegend && !showingCorrect && <KeyLegend isLabelAvailable={isLabelAvailable}></KeyLegend>}\n {showRationale && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n </MainContainer>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}
package/lib/utils.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.completeMark = void 0;
7
+ const completePoint = point => point && Number.isFinite(point.x) && Number.isFinite(point.y);
8
+ const completeFromTo = item => item && completeMark.point(item.from) && completeMark.point(item.to);
9
+ const completeRootEdge = item => item && completeMark.point(item.edge) && completeMark.point(item.root);
10
+ const completePoints = item => item && item.points && item.points.length && (item.points.filter(point => completePoint(point)) || []).length === item.points.length;
11
+ const completeMark = exports.completeMark = {
12
+ point: completePoint,
13
+ line: completeFromTo,
14
+ ray: completeFromTo,
15
+ segment: completeFromTo,
16
+ vector: completeFromTo,
17
+ circle: completeRootEdge,
18
+ parabola: completeRootEdge,
19
+ absolute: completeRootEdge,
20
+ exponential: completeRootEdge,
21
+ sine: completeRootEdge,
22
+ polygon: completePoints
23
+ };
24
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["completePoint","point","Number","isFinite","x","y","completeFromTo","item","completeMark","from","to","completeRootEdge","edge","root","completePoints","points","length","filter","exports","line","ray","segment","vector","circle","parabola","absolute","exponential","sine","polygon"],"sources":["../src/utils.js"],"sourcesContent":["const completePoint = (point) => point && Number.isFinite(point.x) && Number.isFinite(point.y);\nconst completeFromTo = (item) => item && completeMark.point(item.from) && completeMark.point(item.to);\nconst completeRootEdge = (item) => item && completeMark.point(item.edge) && completeMark.point(item.root);\nconst completePoints = (item) =>\n item &&\n item.points &&\n item.points.length &&\n (item.points.filter((point) => completePoint(point)) || []).length === item.points.length;\n\nconst completeMark = {\n point: completePoint,\n line: completeFromTo,\n ray: completeFromTo,\n segment: completeFromTo,\n vector: completeFromTo,\n circle: completeRootEdge,\n parabola: completeRootEdge,\n absolute: completeRootEdge,\n exponential: completeRootEdge,\n sine: completeRootEdge,\n polygon: completePoints,\n};\n\nexport { completeMark };\n"],"mappings":";;;;;;AAAA,MAAMA,aAAa,GAAIC,KAAK,IAAKA,KAAK,IAAIC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAACG,CAAC,CAAC,IAAIF,MAAM,CAACC,QAAQ,CAACF,KAAK,CAACI,CAAC,CAAC;AAC9F,MAAMC,cAAc,GAAIC,IAAI,IAAKA,IAAI,IAAIC,YAAY,CAACP,KAAK,CAACM,IAAI,CAACE,IAAI,CAAC,IAAID,YAAY,CAACP,KAAK,CAACM,IAAI,CAACG,EAAE,CAAC;AACrG,MAAMC,gBAAgB,GAAIJ,IAAI,IAAKA,IAAI,IAAIC,YAAY,CAACP,KAAK,CAACM,IAAI,CAACK,IAAI,CAAC,IAAIJ,YAAY,CAACP,KAAK,CAACM,IAAI,CAACM,IAAI,CAAC;AACzG,MAAMC,cAAc,GAAIP,IAAI,IAC1BA,IAAI,IACJA,IAAI,CAACQ,MAAM,IACXR,IAAI,CAACQ,MAAM,CAACC,MAAM,IAClB,CAACT,IAAI,CAACQ,MAAM,CAACE,MAAM,CAAEhB,KAAK,IAAKD,aAAa,CAACC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAEe,MAAM,KAAKT,IAAI,CAACQ,MAAM,CAACC,MAAM;AAE3F,MAAMR,YAAY,GAAAU,OAAA,CAAAV,YAAA,GAAG;EACnBP,KAAK,EAAED,aAAa;EACpBmB,IAAI,EAAEb,cAAc;EACpBc,GAAG,EAAEd,cAAc;EACnBe,OAAO,EAAEf,cAAc;EACvBgB,MAAM,EAAEhB,cAAc;EACtBiB,MAAM,EAAEZ,gBAAgB;EACxBa,QAAQ,EAAEb,gBAAgB;EAC1Bc,QAAQ,EAAEd,gBAAgB;EAC1Be,WAAW,EAAEf,gBAAgB;EAC7BgB,IAAI,EAAEhB,gBAAgB;EACtBiB,OAAO,EAAEd;AACX,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,98 +1,32 @@
1
1
  {
2
2
  "name": "@pie-element/graphing",
3
- "version": "10.1.2-next.5",
3
+ "repository": "pie-framework/pie-elements",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "version": "10.1.3",
4
8
  "description": "",
9
+ "scripts": {
10
+ "postpublish": "../../scripts/postpublish"
11
+ },
5
12
  "dependencies": {
6
13
  "@emotion/react": "^11.14.0",
7
14
  "@emotion/style": "^0.8.0",
8
15
  "@mui/icons-material": "^7.3.4",
9
16
  "@mui/material": "^7.3.4",
10
- "@pie-lib/correct-answer-toggle": "4.0.3-next.38",
11
- "@pie-lib/graphing": "4.0.5-next.31",
12
- "@pie-lib/render-ui": "6.1.1-next.38",
17
+ "@pie-framework/pie-player-events": "^0.1.0",
18
+ "@pie-lib/correct-answer-toggle": "4.0.4",
19
+ "@pie-lib/graphing": "4.0.8",
20
+ "@pie-lib/math-rendering": "5.0.2",
21
+ "@pie-lib/render-ui": "6.1.2",
22
+ "classnames": "^2.2.6",
13
23
  "debug": "^4.1.1",
14
- "prop-types": "^15.8.1",
15
- "@pie-element/shared-lodash": "0.1.1-next.1",
16
- "@pie-lib/config-ui": "13.0.4-next.31",
17
- "@pie-lib/editable-html-tip-tap": "2.1.2-next.31",
18
- "@pie-element/shared-math-rendering-mathjax": "0.1.1-next.0",
19
- "@pie-element/shared-configure-events": "0.1.0",
20
- "@pie-element/shared-controller-utils": "0.1.1-next.1",
21
- "@pie-lib/graphing-utils": "3.0.3-next.1",
22
- "@pie-element/shared-player-events": "0.1.0",
23
- "clsx": "^2.1.1"
24
- },
25
- "peerDependencies": {
26
- "react": "^18.0.0",
27
- "react-dom": "^18.0.0"
28
- },
29
- "exports": {
30
- ".": {
31
- "types": "./dist/index.d.ts",
32
- "default": "./dist/index.js"
33
- },
34
- "./delivery": {
35
- "types": "./dist/delivery/index.d.ts",
36
- "default": "./dist/delivery/index.js"
37
- },
38
- "./browser/delivery": {
39
- "default": "./dist/browser/delivery/index.js"
40
- },
41
- "./author": {
42
- "types": "./dist/author/index.d.ts",
43
- "default": "./dist/author/index.js"
44
- },
45
- "./browser/author": {
46
- "default": "./dist/browser/author/index.js"
47
- },
48
- "./configure": {
49
- "types": "./dist/author/index.d.ts",
50
- "default": "./dist/author/index.js"
51
- },
52
- "./controller": {
53
- "types": "./dist/controller/index.d.ts",
54
- "default": "./dist/controller/index.js"
55
- },
56
- "./controller.js": {
57
- "types": "./dist/controller/index.d.ts",
58
- "default": "./dist/controller/index.js"
59
- },
60
- "./browser/controller": {
61
- "default": "./dist/browser/controller/index.js"
62
- },
63
- "./runtime-support": {
64
- "types": "./dist/runtime-support.d.ts",
65
- "default": "./dist/runtime-support.js"
66
- }
67
- },
68
- "type": "module",
69
- "main": "./dist/index.js",
70
- "types": "./dist/index.d.ts",
71
- "files": [
72
- "configure.js",
73
- "controller.js",
74
- "dist"
75
- ],
76
- "sideEffects": false,
77
- "devDependencies": {
78
- "vite": "^8.0.1",
79
- "typescript": "^5.9.3",
80
- "@vitejs/plugin-react": "^6.0.1",
81
- "@types/react": "^18.2.0",
82
- "@types/react-dom": "^18.2.0"
83
- },
84
- "scripts": {
85
- "build": "bun x vite build && bun x vite build --config ../../../tools/vite/element-browser.config.ts && bun x vite build --config vite.config.iife.ts && bun x tsc --emitDeclarationOnly",
86
- "dev": "bun x vite",
87
- "demo": "bun x vite --mode demo",
88
- "test": "bun x vitest run"
24
+ "react": "18.3.1",
25
+ "react-dom": "18.3.1"
89
26
  },
90
- "pie": {
91
- "controller": "@pie-element/graphing/controller",
92
- "configure": "@pie-element/graphing/configure",
93
- "browserSharedDependencies": {
94
- "react": "18.2.0",
95
- "react-dom": "18.2.0"
96
- }
97
- }
27
+ "author": "",
28
+ "license": "ISC",
29
+ "gitHead": "213c3a293da2591ffaf2ba5c5fb50f0fe7577cfa",
30
+ "main": "lib/index.js",
31
+ "module": "src/index.js"
98
32
  }
package/configure.js DELETED
@@ -1,2 +0,0 @@
1
- export { default } from './dist/author/index.js';
2
- export * from './dist/author/index.js';
package/controller.js DELETED
@@ -1 +0,0 @@
1
- export * from './dist/controller/index.js';
@@ -1,26 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/graphing/configure/src/configure.jsx
3
- * @auto-generated
4
- *
5
- * This file is automatically synced from pie-elements and converted to TypeScript.
6
- * Manual edits will be overwritten on next sync.
7
- * To make changes, edit the upstream JavaScript file and run sync again.
8
- */
9
- import React from 'react';
10
- import PropTypes from 'prop-types';
11
- export declare class Configure extends React.Component {
12
- static propTypes: {
13
- onModelChanged: PropTypes.Requireable<(...args: any[]) => any>;
14
- onConfigurationChanged: PropTypes.Requireable<(...args: any[]) => any>;
15
- imageSupport: PropTypes.Requireable<object>;
16
- uploadSoundSupport: PropTypes.Requireable<object>;
17
- model: PropTypes.Validator<object>;
18
- configuration: PropTypes.Validator<object>;
19
- };
20
- componentDidMount(): void;
21
- onRationaleChange: any;
22
- onPromptChange: any;
23
- onTeacherInstructionsChange: any;
24
- render(): React.JSX.Element;
25
- }
26
- export default Configure;
@@ -1,208 +0,0 @@
1
- import e from "./graphing-config.js";
2
- import t from "./correct-response.js";
3
- import n from "react";
4
- import r from "prop-types";
5
- import { styled as i } from "@mui/material/styles";
6
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
- import s from "debug";
8
- import { intersection as c } from "@pie-element/shared-lodash";
9
- import l from "@mui/material/Typography";
10
- import { InputContainer as u, layout as d, settings as f } from "@pie-lib/config-ui";
11
- import p from "@pie-lib/editable-html-tip-tap";
12
- //#region src/author/configure.tsx
13
- var { Panel: ee, toggle: m, radio: h, checkboxes: te, textField: ne, dropdown: re } = f, ie = s("@pie-element:graphing:configure"), g = i(u)(({ theme: e }) => ({
14
- width: "100%",
15
- paddingTop: e.spacing(2),
16
- marginBottom: e.spacing(2)
17
- })), ae = i(l)(({ theme: e }) => ({ marginBottom: e.spacing(2.5) })), _ = i("div")(({ theme: e }) => ({
18
- fontSize: e.typography.fontSize - 2,
19
- color: e.palette.error.main,
20
- paddingTop: e.spacing(1)
21
- })), v = class extends n.Component {
22
- static propTypes = {
23
- onModelChanged: r.func,
24
- onConfigurationChanged: r.func,
25
- imageSupport: r.object,
26
- uploadSoundSupport: r.object,
27
- model: r.object.isRequired,
28
- configuration: r.object.isRequired
29
- };
30
- componentDidMount() {
31
- let { configuration: e, onModelChanged: t, model: n } = this.props, { availableTools: r, title: i, graphDimensions: a } = e || {}, { arrows: o, titleEnabled: s, dimensionsEnabled: l } = n || {};
32
- typeof o == "boolean" && (o = o ? {
33
- left: !0,
34
- right: !0,
35
- up: !0,
36
- down: !0
37
- } : {
38
- left: !1,
39
- right: !1,
40
- up: !1,
41
- down: !1
42
- });
43
- let u = c(r || [], n.toolbarTools || []), d = s ?? i.enabled, f = l ?? a.enabled;
44
- t && t({
45
- ...n,
46
- arrows: o,
47
- toolbarTools: u,
48
- titleEnabled: d,
49
- dimensionsEnabled: f
50
- });
51
- }
52
- onRationaleChange = (e) => {
53
- let { onModelChanged: t, model: n } = this.props;
54
- t({
55
- ...n,
56
- rationale: e
57
- });
58
- };
59
- onPromptChange = (e) => {
60
- let { onModelChanged: t, model: n } = this.props;
61
- t({
62
- ...n,
63
- prompt: e
64
- });
65
- };
66
- onTeacherInstructionsChange = (e) => {
67
- let { onModelChanged: t, model: n } = this.props;
68
- t({
69
- ...n,
70
- teacherInstructions: e
71
- });
72
- };
73
- render() {
74
- let { model: n, configuration: r, onConfigurationChanged: i, onModelChanged: s, imageSupport: c, uploadSoundSupport: l } = this.props, { arrows: u = {}, authoring: f = {}, availableTools: v = [], baseInputConfiguration: y = {}, coordinatesOnHover: b = {}, contentDimensions: x = {}, gridConfigurations: S = [], graphDimensions: C = {}, instruction: w = {}, labels: T = {}, padding: E = {}, prompt: D = {}, rationale: O = {}, scoringType: k = {}, settingsPanelDisabled: A, spellCheck: j = {}, studentInstructions: M = {}, teacherInstructions: N = {}, title: P = {}, maxImageWidth: F = {}, maxImageHeight: I = {}, withRubric: L = {}, language: R = {}, languageChoices: z = {}, mathMlOptions: B = {}, removeIncompleteTool: V = !1 } = r || {}, { errors: H = {}, extraCSSRules: U, labelsEnabled: W, dimensionsEnabled: G, promptEnabled: K, rationaleEnabled: oe, spellCheckEnabled: q, teacherInstructionsEnabled: se, titleEnabled: ce } = n || {}, { prompt: J, rationale: Y, teacherInstructions: X } = H || {};
75
- ie("[render] model", n);
76
- let Z = F && F.prompt, Q = I && I.prompt, le = {
77
- top: T.top,
78
- right: T.right,
79
- bottom: T.bottom,
80
- left: T.left
81
- }, ue = {
82
- arrows: u.settings && te(u.label, {
83
- left: u.left,
84
- right: u.right,
85
- up: u.up,
86
- down: u.down
87
- }),
88
- titleEnabled: P.settings && m(P.label),
89
- padding: E.settings && m(E.label),
90
- labelsEnabled: T.settings && m(T.label),
91
- "language.enabled": R.settings && m(R.label, !0),
92
- language: R.settings && R.enabled && re(z.label, z.options),
93
- dimensionsEnabled: C.settings && m(C.label),
94
- coordinatesOnHover: b.settings && m(b.label)
95
- }, de = {
96
- "authoring.enabled": f.settings && m(f.label, !0),
97
- teacherInstructionsEnabled: N.settings && m(N.label),
98
- studentInstructionsEnabled: M.settings && m(M.label),
99
- promptEnabled: D.settings && m(D.label),
100
- rationaleEnabled: O.settings && m(O.label),
101
- spellCheckEnabled: j.settings && m(j.label),
102
- scoringType: k.settings && h(k.label, ["dichotomous", "partial scoring"]),
103
- rubricEnabled: L?.settings && m(L?.label),
104
- instruction: w.settings && ne(w.label)
105
- }, $ = (e = {}) => ({
106
- ...y,
107
- ...e
108
- });
109
- return /* @__PURE__ */ o(d.ConfigLayout, {
110
- extraCSSRules: U,
111
- dimensions: x,
112
- hideSettings: A,
113
- settings: /* @__PURE__ */ a(ee, {
114
- model: n,
115
- configuration: r,
116
- onChangeModel: s,
117
- onChangeConfiguration: i,
118
- groups: {
119
- Settings: ue,
120
- Properties: de
121
- }
122
- }),
123
- children: [
124
- /* @__PURE__ */ a(ae, {
125
- component: "div",
126
- variant: "body1",
127
- children: w?.label || ""
128
- }),
129
- se && /* @__PURE__ */ o(g, {
130
- label: N.label,
131
- children: [/* @__PURE__ */ a(p, {
132
- markup: n.teacherInstructions || "",
133
- onChange: this.onTeacherInstructionsChange,
134
- imageSupport: c,
135
- error: X,
136
- nonEmpty: !1,
137
- pluginProps: $(N?.inputConfiguration),
138
- spellCheck: q,
139
- maxImageWidth: F && F.teacherInstructions || Z,
140
- maxImageHeight: I && I.teacherInstructions || Q,
141
- uploadSoundSupport: l,
142
- languageCharactersProps: [{ language: "spanish" }, { language: "special" }],
143
- mathMlOptions: B
144
- }), X && /* @__PURE__ */ a(_, { children: X })]
145
- }),
146
- K && /* @__PURE__ */ o(g, {
147
- label: D.label,
148
- children: [/* @__PURE__ */ a(p, {
149
- markup: n.prompt,
150
- onChange: this.onPromptChange,
151
- imageSupport: c,
152
- error: J,
153
- nonEmpty: !1,
154
- spellCheck: q,
155
- pluginProps: $(D?.inputConfiguration),
156
- disableUnderline: !0,
157
- maxImageWidth: Z,
158
- maxImageHeight: Q,
159
- uploadSoundSupport: l,
160
- languageCharactersProps: [{ language: "spanish" }, { language: "special" }],
161
- mathMlOptions: B
162
- }), J && /* @__PURE__ */ a(_, { children: J })]
163
- }),
164
- /* @__PURE__ */ a(e, {
165
- authoring: f,
166
- availableTools: v,
167
- gridConfigurations: S,
168
- graphDimensions: C,
169
- labelsPlaceholders: le,
170
- model: n,
171
- showLabels: W,
172
- dimensionsEnabled: G,
173
- showTitle: ce,
174
- titlePlaceholder: P.placeholder,
175
- onChange: this.props.onModelChanged,
176
- mathMlOptions: B,
177
- removeIncompleteTool: V
178
- }),
179
- /* @__PURE__ */ a(t, {
180
- availableTools: v,
181
- errors: H,
182
- model: n,
183
- onChange: this.props.onModelChanged,
184
- mathMlOptions: B,
185
- removeIncompleteTool: V
186
- }),
187
- oe && /* @__PURE__ */ o(g, {
188
- label: O.label || "Rationale",
189
- children: [/* @__PURE__ */ a(p, {
190
- markup: n.rationale || "",
191
- onChange: this.onRationaleChange,
192
- imageSupport: c,
193
- error: Y,
194
- spellCheck: q,
195
- pluginProps: $(O?.inputConfiguration),
196
- maxImageWidth: F && F.rationale || Z,
197
- maxImageHeight: I && I.rationale || Q,
198
- uploadSoundSupport: l,
199
- languageCharactersProps: [{ language: "spanish" }, { language: "special" }],
200
- mathMlOptions: B
201
- }), Y && /* @__PURE__ */ a(_, { children: Y })]
202
- })
203
- ]
204
- });
205
- }
206
- };
207
- //#endregion
208
- export { v as default };