@pie-element/graphing-solution-set 6.1.2-next.1 → 6.1.2

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 (88) hide show
  1. package/CHANGELOG.json +1 -0
  2. package/CHANGELOG.md +856 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +20 -0
  5. package/configure/CHANGELOG.json +1 -0
  6. package/configure/CHANGELOG.md +816 -0
  7. package/configure/lib/configure.js +312 -0
  8. package/configure/lib/configure.js.map +1 -0
  9. package/configure/lib/correct-response.js +435 -0
  10. package/configure/lib/correct-response.js.map +1 -0
  11. package/configure/lib/defaults.js +357 -0
  12. package/configure/lib/defaults.js.map +1 -0
  13. package/configure/lib/graphing-config.js +408 -0
  14. package/configure/lib/graphing-config.js.map +1 -0
  15. package/configure/lib/index.js +163 -0
  16. package/configure/lib/index.js.map +1 -0
  17. package/configure/lib/utils.js +630 -0
  18. package/configure/lib/utils.js.map +1 -0
  19. package/configure/package.json +29 -0
  20. package/controller/CHANGELOG.json +1 -0
  21. package/controller/CHANGELOG.md +675 -0
  22. package/controller/lib/defaults.js +69 -0
  23. package/controller/lib/defaults.js.map +1 -0
  24. package/controller/lib/index.js +351 -0
  25. package/controller/lib/index.js.map +1 -0
  26. package/controller/lib/utils.js +212 -0
  27. package/controller/lib/utils.js.map +1 -0
  28. package/controller/package.json +22 -0
  29. package/demo-gss.gif +0 -0
  30. package/docs/config-schema.json +1560 -0
  31. package/docs/config-schema.json.md +1114 -0
  32. package/docs/demo/config.js +8 -0
  33. package/docs/demo/generate.js +54 -0
  34. package/docs/demo/index.html +1 -0
  35. package/docs/demo/session.js +6 -0
  36. package/docs/pie-schema.json +1800 -0
  37. package/docs/pie-schema.json.md +952 -0
  38. package/lib/index.js +164 -0
  39. package/lib/index.js.map +1 -0
  40. package/lib/main.js +355 -0
  41. package/lib/main.js.map +1 -0
  42. package/lib/utils.js +515 -0
  43. package/lib/utils.js.map +1 -0
  44. package/package.json +23 -86
  45. package/configure.js +0 -2
  46. package/controller.js +0 -1
  47. package/dist/author/configure.d.ts +0 -26
  48. package/dist/author/configure.js +0 -190
  49. package/dist/author/correct-response.d.ts +0 -33
  50. package/dist/author/correct-response.js +0 -206
  51. package/dist/author/defaults.d.ts +0 -238
  52. package/dist/author/defaults.js +0 -339
  53. package/dist/author/graphing-config.d.ts +0 -33
  54. package/dist/author/graphing-config.js +0 -237
  55. package/dist/author/index.d.ts +0 -62
  56. package/dist/author/index.js +0 -87
  57. package/dist/author/utils.d.ts +0 -46
  58. package/dist/author/utils.js +0 -474
  59. package/dist/browser/author/index.js +0 -1942
  60. package/dist/browser/author/index.js.map +0 -1
  61. package/dist/browser/browser-pUycHh7Y.js +0 -348
  62. package/dist/browser/browser-pUycHh7Y.js.map +0 -1
  63. package/dist/browser/controller/index.js +0 -193
  64. package/dist/browser/controller/index.js.map +0 -1
  65. package/dist/browser/delivery/index.js +0 -782
  66. package/dist/browser/delivery/index.js.map +0 -1
  67. package/dist/browser/dist-BxTk7Laj.js +0 -57671
  68. package/dist/browser/dist-BxTk7Laj.js.map +0 -1
  69. package/dist/browser/graphing-solution-set.css +0 -2
  70. package/dist/controller/defaults.d.ts +0 -64
  71. package/dist/controller/defaults.js +0 -54
  72. package/dist/controller/index.d.ts +0 -24
  73. package/dist/controller/index.js +0 -110
  74. package/dist/controller/utils.d.ts +0 -20
  75. package/dist/controller/utils.js +0 -39
  76. package/dist/delivery/index.d.ts +0 -22
  77. package/dist/delivery/index.js +0 -62
  78. package/dist/delivery/main.d.ts +0 -31
  79. package/dist/delivery/main.js +0 -198
  80. package/dist/delivery/utils.d.ts +0 -12
  81. package/dist/delivery/utils.js +0 -220
  82. package/dist/graphing-solution-set.css +0 -2
  83. package/dist/index.d.ts +0 -1
  84. package/dist/index.iife.d.ts +0 -8
  85. package/dist/index.iife.js +0 -405
  86. package/dist/index.js +0 -2
  87. package/dist/runtime-support.d.ts +0 -12
  88. package/dist/runtime-support.js +0 -12
@@ -1,237 +0,0 @@
1
- import { applyConstraints as e, filterPlotableMarks as t, getGridValues as n, getLabelValues as r } from "./utils.js";
2
- import * as i from "react";
3
- import a from "prop-types";
4
- import { styled as o } from "@mui/material/styles";
5
- import { GraphContainer as s, GridSetup as c } from "@pie-lib/graphing-solution-set";
6
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
- import { AlertDialog as d } from "@pie-lib/config-ui";
8
- import { cloneDeep as f, isEqual as p } from "@pie-element/shared-lodash";
9
- import { MenuItem as m, OutlinedInput as h, Select as g, Typography as _ } from "@mui/material";
10
- //#region src/author/graphing-config.tsx
11
- var v = o("div")(({ theme: e }) => ({
12
- display: "flex",
13
- flexWrap: "wrap",
14
- marginBottom: e.spacing(2.5)
15
- })), y = o("div")(({ theme: e }) => ({
16
- display: "flex",
17
- flexDirection: "column",
18
- marginRight: e.spacing(3),
19
- marginBottom: e.spacing(2.5)
20
- })), b = o("div")({
21
- display: "flex",
22
- flexDirection: "column"
23
- }), x = o(_)(({ theme: e }) => ({
24
- marginTop: e.spacing(1.5),
25
- marginBottom: e.spacing(1)
26
- })), S = o("div")(({ theme: e }) => ({
27
- display: "flex",
28
- flexWrap: "wrap",
29
- alignItems: "center",
30
- width: "100%",
31
- marginBottom: e.spacing(2.5)
32
- })), C = o(_)(({ theme: e }) => ({ padding: `0 ${e.spacing(1)}` })), w = o(g)({ flex: "1" }), T = class extends i.Component {
33
- static propTypes = {
34
- availableTools: a.array,
35
- authoring: a.object,
36
- dimensionsEnabled: a.bool,
37
- graphDimensions: a.object,
38
- gridConfigurations: a.array,
39
- labelsPlaceholders: a.object,
40
- model: a.object.isRequired,
41
- onChange: a.func.isRequired,
42
- showLabels: a.bool,
43
- showTitle: a.bool,
44
- titlePlaceholder: a.string
45
- };
46
- constructor(e) {
47
- super(e);
48
- let { domain: t, range: i, graph: a } = e.model || {}, o = {
49
- domain: n(t, a.width, !0),
50
- range: n(i, a.height, !0)
51
- }, s = {
52
- domain: r(t.step),
53
- range: r(i.step)
54
- };
55
- this.state = {
56
- gridValues: o,
57
- labelValues: s,
58
- showPixelGuides: !1,
59
- dialog: { isOpened: !1 },
60
- domain: { ...t },
61
- range: { ...i }
62
- };
63
- }
64
- changeLabels = (e) => {
65
- let { model: t, onChange: n } = this.props;
66
- n({
67
- ...t,
68
- labels: e
69
- });
70
- };
71
- changeTitle = (e) => {
72
- let { model: t, onChange: n } = this.props;
73
- n({
74
- ...t,
75
- title: e
76
- });
77
- };
78
- onConfigChange = (n, r) => {
79
- let { model: i, onChange: a } = this.props, { defaultGridConfiguration: o = 0 } = i, { gridValues: s, labelValues: c, domain: l, range: u } = this.state, d = {
80
- ...i,
81
- ...n
82
- }, { answers: m, domain: h, includeAxes: g = !0, graph: _, range: v, standardGrid: y } = d, b = {
83
- domain: [],
84
- range: []
85
- }, x = {
86
- domain: [],
87
- range: []
88
- }, S = r >= 0 ? r : o;
89
- if (g) {
90
- let t = e(h, _.width, s.domain, c.domain);
91
- b.domain = t.gridValues || [], x.domain = t.labelValues || [];
92
- }
93
- if (y) b.range = b.domain, x.range = x.domain, v.step = h.step, v.labelStep = h.labelStep;
94
- else if (g) {
95
- let t = e(v, _.height, s.range, c.range);
96
- b.range = t.gridValues || [], x.range = t.labelValues || [];
97
- }
98
- let C = f(m);
99
- C.correctAnswer.marks = m.correctAnswer.marks.filter((e) => e.type !== "polygon");
100
- let w = t(h, v, C);
101
- if (!p(C, w)) {
102
- this.setState({ dialog: {
103
- isOpened: !0,
104
- onClose: () => this.setState({ dialog: { isOpened: !1 } }, a({
105
- ...i,
106
- domain: l,
107
- range: u
108
- })),
109
- onConfirm: () => {
110
- d.gssLineData.sections = [], d.gssLineData.selectedTool = "lineA", this.setState({
111
- gridValues: b,
112
- labelValues: x,
113
- dialog: { isOpened: !1 },
114
- domain: { ...h },
115
- range: { ...v }
116
- }, a({
117
- ...d,
118
- answers: w,
119
- defaultGridConfiguration: S
120
- }));
121
- }
122
- } });
123
- return;
124
- }
125
- this.setState({
126
- gridValues: b,
127
- labelValues: x,
128
- domain: { ...h },
129
- range: { ...v }
130
- }), a({
131
- ...d,
132
- defaultGridConfiguration: S
133
- });
134
- };
135
- onChangeView = (e, t) => {
136
- let { graphDimensions: { enabled: n } = {} } = this.props;
137
- n && this.setState({ showPixelGuides: t });
138
- };
139
- changeGridConfiguration = (e) => {
140
- let { gridConfigurations: t } = this.props, { value: n } = e.target;
141
- this.onConfigChange(t?.[n] || {}, n);
142
- };
143
- render() {
144
- let { authoring: e = {}, gridConfigurations: t = [], graphDimensions: n = {}, labelsPlaceholders: r, model: i, showLabels: a, dimensionsEnabled: o, showTitle: f, titlePlaceholder: p, mathMlOptions: g = {} } = this.props, { arrows: T, coordinatesOnHover: E, defaultGridConfiguration: D, domain: O, labels: k, range: A, standardGrid: j, title: M } = i || {}, N = (i || {}).graph || {}, { min: P, max: F, step: I } = n || {}, { dialog: L = {}, gridValues: R, labelValues: z, showPixelGuides: B } = this.state, V = {
145
- min: Math.max(150, P),
146
- max: Math.min(800, F),
147
- step: I >= 1 ? Math.min(200, I) : 20
148
- }, H = {
149
- axisLabel: e.axisLabel,
150
- dimensionsEnabled: o,
151
- includeAxesEnabled: !1,
152
- labelStep: e.labelStep,
153
- min: e.min,
154
- max: e.max,
155
- standardGridEnabled: e.standardGridEnabled,
156
- step: e.step
157
- }, U = e.enabled && Object.values(H).some((e) => typeof e == "object" ? e.enabled : e);
158
- return /* @__PURE__ */ u(v, { children: [
159
- /* @__PURE__ */ u(y, { children: [t && t.length ? /* @__PURE__ */ u(S, { children: [/* @__PURE__ */ l(C, {
160
- component: "div",
161
- variant: "h6",
162
- children: "Grid Configuration"
163
- }), /* @__PURE__ */ l(w, {
164
- input: /* @__PURE__ */ l(h, { labelWidth: 10 }),
165
- displayEmpty: !0,
166
- onChange: this.changeGridConfiguration,
167
- value: D,
168
- MenuProps: { transitionDuration: {
169
- enter: 225,
170
- exit: 195
171
- } },
172
- children: (t || []).map((e, t) => /* @__PURE__ */ l(m, {
173
- value: t,
174
- children: e.label
175
- }, t))
176
- })] }) : null, U && /* @__PURE__ */ l(c, {
177
- displayedFields: H,
178
- domain: O,
179
- gridValues: R,
180
- includeAxes: !0,
181
- labelValues: z,
182
- range: A,
183
- size: N,
184
- sizeConstraints: V,
185
- standardGrid: j,
186
- onChange: this.onConfigChange,
187
- onChangeView: this.onChangeView
188
- })] }),
189
- /* @__PURE__ */ u(b, { children: [
190
- /* @__PURE__ */ l(_, {
191
- component: "div",
192
- variant: "h6",
193
- children: "Define Graph Attributes"
194
- }),
195
- /* @__PURE__ */ l(x, {
196
- component: "div",
197
- variant: "body1",
198
- children: "Use this interface to add/edit a title and/or labels"
199
- }),
200
- /* @__PURE__ */ l(s, {
201
- axesSettings: { includeArrows: T },
202
- backgroundMarks: [],
203
- coordinatesOnHover: E,
204
- collapsibleToolbar: !0,
205
- collapsibleToolbarTitle: "Add Background Shapes to Graph",
206
- domain: O,
207
- labels: k,
208
- labelsPlaceholders: r,
209
- marks: [],
210
- onChangeLabels: this.changeLabels,
211
- onChangeTitle: this.changeTitle,
212
- range: A,
213
- showLabels: a,
214
- showPixelGuides: B,
215
- showTitle: f,
216
- size: {
217
- width: N.width,
218
- height: N.height
219
- },
220
- title: M,
221
- titlePlaceholder: p,
222
- disableToolbar: !0,
223
- mathMlOptions: g
224
- }, "graphing-config")
225
- ] }, "graph"),
226
- /* @__PURE__ */ l(d, {
227
- open: L.isOpened,
228
- title: "Warning",
229
- text: "This change would make it impossible for students to plot one or more graph objects in the current correct answers. If you proceed, all such graph objects will be removed from the correct answers.",
230
- onClose: L.onClose,
231
- onConfirm: L.onConfirm
232
- })
233
- ] });
234
- }
235
- };
236
- //#endregion
237
- export { T as default };
@@ -1,62 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/graphing-solution-set/configure/src/index.js
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
- export default class GraphLinesConfigure extends HTMLElement {
10
- static createDefaultModel: (model?: {}) => {
11
- answers: any;
12
- range: {};
13
- graph: {};
14
- arrows: {
15
- left: boolean;
16
- right: boolean;
17
- up: boolean;
18
- down: boolean;
19
- };
20
- marks: never[];
21
- defaultGridConfiguration: number;
22
- domain: {
23
- min: number;
24
- max: number;
25
- step: number;
26
- labelStep: number;
27
- axisLabel: string;
28
- };
29
- gssLineData: {
30
- numberOfLines: number;
31
- selectedTool: string;
32
- sections: never[];
33
- lineA: {
34
- lineType: string;
35
- };
36
- };
37
- includeAxes: boolean;
38
- labels: {};
39
- labelsEnabled: boolean;
40
- padding: boolean;
41
- prompt: string;
42
- rationale: string;
43
- standardGrid: boolean;
44
- title: string;
45
- coordinatesOnHover: boolean;
46
- promptEnabled: boolean;
47
- rationaleEnabled: boolean;
48
- teacherInstructionsEnabled: boolean;
49
- studentInstructionsEnabled: boolean;
50
- };
51
- constructor();
52
- set model(m: any);
53
- set configuration(c: any);
54
- onModelChanged: any;
55
- onConfigurationChanged: any;
56
- insertImage: any;
57
- onDeleteImage: any;
58
- insertSound(handler: any): void;
59
- onDeleteSound(src: any, done: any): void;
60
- _render(): void;
61
- disconnectedCallback(): void;
62
- }
@@ -1,87 +0,0 @@
1
- import e from "./configure.js";
2
- import t from "./defaults.js";
3
- import n from "react";
4
- import { createRoot as r } from "react-dom/client";
5
- import { renderMath as i } from "@pie-element/shared-math-rendering-mathjax";
6
- import a from "debug";
7
- import { DeleteImageEvent as o, DeleteSoundEvent as s, InsertImageEvent as c, InsertSoundEvent as l, ModelUpdatedEvent as u } from "@pie-element/shared-configure-events";
8
- //#region src/author/index.ts
9
- var d = a("pie-elements:graphing-solution-set:configure"), f = (e) => Object.keys(e || {}).sort().reduce((t, n) => (n !== "correctAnswer" && (t[n] = e[n]), t), {}), p = class a extends HTMLElement {
10
- static createDefaultModel = (e = {}) => {
11
- let n = {
12
- ...t.model,
13
- ...e
14
- }, { answers: r = {}, domain: i = {}, graph: a = {}, range: o = {}, standardGrid: s } = n;
15
- return {
16
- ...n,
17
- answers: r && r.correctAnswer && {
18
- correctAnswer: r.correctAnswer,
19
- ...f(r)
20
- } || r,
21
- range: s && {
22
- ...o,
23
- min: i.min,
24
- max: i.max,
25
- step: i.step,
26
- labelStep: i.labelStep
27
- } || o,
28
- graph: s && {
29
- ...a,
30
- height: a.width
31
- } || a
32
- };
33
- };
34
- constructor() {
35
- super(), this._root = null, this._model = a.createDefaultModel(), this._configuration = t.configuration;
36
- }
37
- set model(e) {
38
- this._model = a.createDefaultModel(e), this._render();
39
- }
40
- set configuration(e) {
41
- this._configuration = e, e.language?.enabled ? e.languageChoices?.options?.length && (this._model.language = e.languageChoices.options[0].value) : e.language.settings ? this._model.language && (this._configuration.language.enabled = !0) : delete this._model.language, this._render();
42
- }
43
- onModelChanged = (e) => {
44
- this._model = e, this._render(), d("[onModelChanged]: ", this._model), this.dispatchEvent(new u(this._model));
45
- };
46
- onConfigurationChanged = (e) => {
47
- this._configuration = e, this._render();
48
- };
49
- insertImage = (e) => {
50
- this.dispatchEvent(new c(e));
51
- };
52
- onDeleteImage = (e, t) => {
53
- this.dispatchEvent(new o(e, t));
54
- };
55
- insertSound(e) {
56
- this.dispatchEvent(new l(e));
57
- }
58
- onDeleteSound(e, t) {
59
- this.dispatchEvent(new s(e, t));
60
- }
61
- _render() {
62
- if (this._model) {
63
- let t = n.createElement(e, {
64
- onModelChanged: this.onModelChanged,
65
- onConfigurationChanged: this.onConfigurationChanged,
66
- model: this._model,
67
- configuration: this._configuration,
68
- imageSupport: {
69
- add: this.insertImage,
70
- delete: this.onDeleteImage
71
- },
72
- uploadSoundSupport: {
73
- add: this.insertSound.bind(this),
74
- delete: this.onDeleteSound.bind(this)
75
- }
76
- });
77
- this._root ||= r(this), this._root.render(t), queueMicrotask(() => {
78
- i(this);
79
- });
80
- }
81
- }
82
- disconnectedCallback() {
83
- this._root && this._root.unmount();
84
- }
85
- };
86
- //#endregion
87
- export { p as default };
@@ -1,46 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/graphing-solution-set/configure/src/utils.js
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
- export declare const VALID_LABEL_VALUES: {
10
- 0.01: number[];
11
- 0.02: number[];
12
- 0.04: number[];
13
- 0.05: number[];
14
- 0.0625: number[];
15
- 0.1: number[];
16
- 0.125: number[];
17
- 0.2: number[];
18
- 0.25: number[];
19
- 0.5: number[];
20
- 1: number[];
21
- 2: number[];
22
- 3: number[];
23
- 4: number[];
24
- 5: number[];
25
- 8: number[];
26
- 10: number[];
27
- 12: number[];
28
- 15: number[];
29
- 20: number[];
30
- 40: number[];
31
- 50: number[];
32
- 64: number[];
33
- 100: number[];
34
- 500: number[];
35
- 1000: number[];
36
- };
37
- export declare const getGridValues: (axis: any, size: any, prefferedValues?: boolean) => number[];
38
- export declare const getLabelValues: (value: any) => any;
39
- export declare const applyConstraints: (axis: any, size: any, oldGridValues: any, oldLabelValues: any) => {
40
- gridValues: number[];
41
- labelValues: any;
42
- };
43
- export declare const filterPlotableMarks: (domain: any, range: any, answers: any) => {};
44
- export declare const findSectionsInSolutionSet: (gssLineData: any, answers: any, domain: any, range: any) => any;
45
- export declare const pointInsidePolygon: (point: any, polygon: any) => boolean;
46
- export declare const checkIfLinesAreAdded: (gssLineData: any, answer: any) => boolean | undefined;