@pie-element/charting 12.1.2-next.1 → 12.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 (79) hide show
  1. package/CHANGELOG.json +487 -0
  2. package/CHANGELOG.md +2001 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +1 -0
  5. package/configure/CHANGELOG.json +292 -0
  6. package/configure/CHANGELOG.md +1768 -0
  7. package/configure/lib/charting-config.js +192 -0
  8. package/configure/lib/charting-config.js.map +1 -0
  9. package/configure/lib/configure.js +312 -0
  10. package/configure/lib/configure.js.map +1 -0
  11. package/configure/lib/correct-response.js +244 -0
  12. package/configure/lib/correct-response.js.map +1 -0
  13. package/configure/lib/defaults.js +233 -0
  14. package/configure/lib/defaults.js.map +1 -0
  15. package/configure/lib/index.js +120 -0
  16. package/configure/lib/index.js.map +1 -0
  17. package/configure/lib/utils.js +80 -0
  18. package/configure/lib/utils.js.map +1 -0
  19. package/configure/package.json +29 -0
  20. package/controller/CHANGELOG.json +262 -0
  21. package/controller/CHANGELOG.md +1212 -0
  22. package/controller/lib/defaults.js +42 -0
  23. package/controller/lib/defaults.js.map +1 -0
  24. package/controller/lib/index.js +434 -0
  25. package/controller/lib/index.js.map +1 -0
  26. package/controller/package.json +24 -0
  27. package/docs/config-schema.json +2440 -0
  28. package/docs/config-schema.json.md +1802 -0
  29. package/docs/demo/config.js +8 -0
  30. package/docs/demo/generate.js +63 -0
  31. package/docs/demo/index.html +1 -0
  32. package/docs/demo/session.js +26 -0
  33. package/docs/pie-schema.json +1731 -0
  34. package/docs/pie-schema.json.md +945 -0
  35. package/lib/index.js +78 -0
  36. package/lib/index.js.map +1 -0
  37. package/lib/main.js +167 -0
  38. package/lib/main.js.map +1 -0
  39. package/package.json +21 -86
  40. package/configure.js +0 -2
  41. package/controller.js +0 -1
  42. package/dist/author/charting-config.d.ts +0 -30
  43. package/dist/author/charting-config.js +0 -126
  44. package/dist/author/configure.d.ts +0 -29
  45. package/dist/author/configure.js +0 -205
  46. package/dist/author/correct-response.d.ts +0 -27
  47. package/dist/author/correct-response.js +0 -115
  48. package/dist/author/defaults.d.ts +0 -229
  49. package/dist/author/defaults.js +0 -186
  50. package/dist/author/index.d.ts +0 -51
  51. package/dist/author/index.js +0 -74
  52. package/dist/author/utils.d.ts +0 -42
  53. package/dist/author/utils.js +0 -244
  54. package/dist/browser/author/index.js +0 -1242
  55. package/dist/browser/author/index.js.map +0 -1
  56. package/dist/browser/chart-AvFvbpGV.js +0 -58913
  57. package/dist/browser/chart-AvFvbpGV.js.map +0 -1
  58. package/dist/browser/charting.css +0 -2
  59. package/dist/browser/controller/index.js +0 -194
  60. package/dist/browser/controller/index.js.map +0 -1
  61. package/dist/browser/delivery/index.js +0 -517
  62. package/dist/browser/delivery/index.js.map +0 -1
  63. package/dist/browser/dist-CA-Ok7CW.js +0 -330
  64. package/dist/browser/dist-CA-Ok7CW.js.map +0 -1
  65. package/dist/charting.css +0 -2
  66. package/dist/controller/defaults.d.ts +0 -44
  67. package/dist/controller/defaults.js +0 -33
  68. package/dist/controller/index.d.ts +0 -28
  69. package/dist/controller/index.js +0 -153
  70. package/dist/delivery/index.d.ts +0 -21
  71. package/dist/delivery/index.js +0 -46
  72. package/dist/delivery/main.d.ts +0 -23
  73. package/dist/delivery/main.js +0 -128
  74. package/dist/index.d.ts +0 -1
  75. package/dist/index.iife.d.ts +0 -8
  76. package/dist/index.iife.js +0 -395
  77. package/dist/index.js +0 -2
  78. package/dist/runtime-support.d.ts +0 -12
  79. package/dist/runtime-support.js +0 -12
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../../lib-react/charting/dist/chart-type.js","../../../../../lib-react/charting/dist/chart-setup.js","../../../../../shared/configure-events/dist/index.js","../../../src/author/charting-config.tsx","../../../src/author/correct-response.tsx","../../../src/author/utils.ts","../../../src/author/configure.tsx","../../../src/author/defaults.ts","../../../src/author/index.ts"],"sourcesContent":["import \"react\";\nimport e from \"prop-types\";\nimport { styled as t } from \"@mui/material/styles\";\nimport { jsx as n, jsxs as r } from \"react/jsx-runtime\";\nimport i from \"@mui/material/MenuItem\";\nimport a from \"@mui/material/FormControl\";\nimport o from \"@mui/material/InputLabel\";\nimport { Select as s } from \"@mui/material\";\n//#region src/chart-type.tsx\nvar c = t(\"div\")(() => ({ width: \"160px\" })), l = t(a)(() => ({ width: \"160px\" })), u = t(o)(() => ({ backgroundColor: \"transparent\" })), d = ({ onChange: e, value: t, availableChartTypes: a, chartTypeLabel: o }) => /* @__PURE__ */ n(c, { children: /* @__PURE__ */ r(l, {\n\tvariant: \"outlined\",\n\tchildren: [/* @__PURE__ */ n(u, {\n\t\tid: \"type-helper-label\",\n\t\tchildren: o\n\t}), /* @__PURE__ */ r(s, {\n\t\tlabelId: \"type-helper-label\",\n\t\tid: \"type-helper-label-select\",\n\t\tname: \"chartType\",\n\t\tvalue: t,\n\t\tonChange: e,\n\t\tlabel: o,\n\t\tMenuProps: { transitionDuration: {\n\t\t\tenter: 225,\n\t\t\texit: 195\n\t\t} },\n\t\tchildren: [\n\t\t\ta?.histogram && /* @__PURE__ */ n(i, {\n\t\t\t\tvalue: \"histogram\",\n\t\t\t\tchildren: a.histogram\n\t\t\t}),\n\t\t\ta?.bar && /* @__PURE__ */ n(i, {\n\t\t\t\tvalue: \"bar\",\n\t\t\t\tchildren: a.bar\n\t\t\t}),\n\t\t\ta?.lineDot && /* @__PURE__ */ n(i, {\n\t\t\t\tvalue: \"lineDot\",\n\t\t\t\tchildren: a.lineDot\n\t\t\t}),\n\t\t\ta?.lineCross && /* @__PURE__ */ n(i, {\n\t\t\t\tvalue: \"lineCross\",\n\t\t\t\tchildren: a.lineCross\n\t\t\t}),\n\t\t\ta?.dotPlot && /* @__PURE__ */ n(i, {\n\t\t\t\tvalue: \"dotPlot\",\n\t\t\t\tchildren: a.dotPlot\n\t\t\t}),\n\t\t\ta?.linePlot && /* @__PURE__ */ n(i, {\n\t\t\t\tvalue: \"linePlot\",\n\t\t\t\tchildren: a.linePlot\n\t\t\t})\n\t\t]\n\t})]\n}) });\nd.propTypes = {\n\tonChange: e.func.isRequired,\n\tvalue: e.string.isRequired,\n\tavailableChartTypes: e.shape({\n\t\thistogram: e.string,\n\t\tbar: e.string,\n\t\tlineDot: e.string,\n\t\tlineCross: e.string,\n\t\tdotPlot: e.string,\n\t\tlinePlot: e.string\n\t}),\n\tchartTypeLabel: e.string\n};\n//#endregion\nexport { d as default };\n","import e from \"./chart-type.js\";\nimport { useEffect as t, useState as n } from \"react\";\nimport r from \"prop-types\";\nimport { styled as i } from \"@mui/material/styles\";\nimport { AlertDialog as a, NumberTextFieldCustom as o } from \"@pie-lib/config-ui\";\nimport { color as s } from \"@pie-lib/render-ui\";\nimport { jsx as c, jsxs as l } from \"react/jsx-runtime\";\nimport u from \"@mui/material/Typography\";\n//#region src/chart-setup.tsx\nvar d = (e, t, n, r, i) => {\n\t(e || []).forEach((e) => {\n\t\tlet t = Math.round(e.value * 10) % Math.round(n.step * 10) / 10;\n\t\t(e.value > n.max || t !== 0) && (e.value = 0);\n\t}), t && r({\n\t\t...i,\n\t\tdata: e\n\t});\n}, f = i(\"div\")(() => ({ width: \"450px\" })), p = i(\"div\")(({ theme: e }) => ({\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\twidth: \"100%\",\n\tmarginTop: e.spacing(3)\n})), m = i(\"div\")(() => ({\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\talignItems: \"center\"\n})), h = i(\"div\")(() => ({\n\tdisplay: \"flex\",\n\tjustifyContent: \"space-around\",\n\talignItems: \"center\"\n})), g = i(o)(({ theme: e }) => ({\n\twidth: \"130px\",\n\tmargin: `${e.spacing(1)} ${e.spacing(.5)}`\n})), _ = i(o)(({ theme: e }) => ({\n\twidth: \"160px\",\n\tmargin: `${e.spacing(1)} ${e.spacing(.5)}`\n})), v = i(\"div\")(({ theme: e }) => ({\n\tdisplay: \"flex\",\n\tjustifyContent: \"space-between\",\n\talignItems: \"center\",\n\tmargin: `${e.spacing(3)} 0`\n})), y = i(u)(() => ({ color: s.disabled() })), b = (r) => {\n\tlet { model: i, onChange: o, chartDimensions: s, gridValues: b = {}, labelValues: x = {}, studentNewCategoryDefaultLabel: S = {}, availableChartTypes: C = {}, chartTypeLabel: w } = r, [T, E] = n({\n\t\topen: !1,\n\t\ttitle: \"\",\n\t\ttext: \"\",\n\t\tonClose: null,\n\t\tonConfirm: null\n\t}), [D, O] = n(!1), [k, A] = n(\"\"), [j, M] = n(0), { range: N = {}, correctAnswer: P, changeInteractiveEnabled: F, changeEditableEnabled: I } = i, L = i.graph, { showInConfigPanel: R, width: z, height: B } = s || {}, V = {\n\t\tmin: z?.min ? Math.max(50, z.min) : 50,\n\t\tmax: z?.max ? Math.min(700, z.max) : 700,\n\t\tstep: z?.step >= 1 ? Math.min(200, z.step) : 20\n\t}, H = {\n\t\tmin: B?.min ? Math.max(400, B.min) : 400,\n\t\tmax: B?.max ? Math.min(700, B.max) : 700,\n\t\tstep: B?.step >= 1 ? Math.min(200, B.step) : 20\n\t}, U = b && b.range ? { customValues: b.range } : {\n\t\tmin: 0,\n\t\tmax: 1e4\n\t}, W = x && x.range ? { customValues: x.range } : {\n\t\tmin: 0,\n\t\tmax: 1e4\n\t}, G = /* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(_, {\n\t\tlabel: \"Grid Interval\",\n\t\tvalue: N.step,\n\t\tvariant: \"outlined\",\n\t\tonChange: (e, t) => $(\"step\", t, e),\n\t\t...U\n\t}), /* @__PURE__ */ c(_, {\n\t\tlabel: \"Label Interval\",\n\t\tvalue: N.labelStep,\n\t\tvariant: \"outlined\",\n\t\tonChange: (e, t) => $(\"labelStep\", t, e),\n\t\t...W\n\t})] }), K = (e) => {\n\t\tE((t) => ({\n\t\t\t...t,\n\t\t\topen: e\n\t\t})), O(e);\n\t}, q = (e, t) => e.map((e) => (Object.prototype.hasOwnProperty.call(e, t) && (e[t] = t == \"interactive\"), e)), J = (e) => {\n\t\tlet { correctAnswer: t, data: n } = i;\n\t\tF === !1 && q(n, \"interactive\"), I === !1 && q(n, \"editable\"), d(n, e, N, o, i), d(t.data, !1, N, o, i);\n\t}, Y = () => {\n\t\tlet e = S?.label;\n\t\to({\n\t\t\t...i,\n\t\t\tstudentCategoryDefaultLabel: e\n\t\t});\n\t}, X = (e) => e.includes(\"Plot\") ? {\n\t\tmin: 3,\n\t\tmax: 10\n\t} : {\n\t\tmin: .05,\n\t\tmax: 1e4\n\t}, Z = (e, t) => {\n\t\tlet n = {\n\t\t\t...L,\n\t\t\t[e]: t\n\t\t};\n\t\to({\n\t\t\t...i,\n\t\t\tgraph: n\n\t\t});\n\t}, Q = (e, t) => (e || []).find((e) => e.value > t.max || e.value - t.step * Math.floor(e.value / t.step) !== 0), $ = (e, t, n) => {\n\t\tM(N[e]), A(e), N[e] = t, (e === \"max\" || e === \"step\") && (Q(i.data, N) || Q(i.correctAnswer.data, N)) && n?.target ? O(!0) : o({\n\t\t\t...i,\n\t\t\trange: N\n\t\t});\n\t};\n\tt(() => {\n\t\tJ(!0), Y();\n\t}, []), t(() => {\n\t\tD && E({\n\t\t\topen: !0,\n\t\t\ttitle: \"Warning\",\n\t\t\ttext: \"This change will remove values defined for one or more categories\",\n\t\t\tonConfirm: () => {\n\t\t\t\tJ(), K(!1), o({\n\t\t\t\t\t...i,\n\t\t\t\t\trange: N,\n\t\t\t\t\tcorrectAnswer: P\n\t\t\t\t});\n\t\t\t},\n\t\t\tonClose: () => {\n\t\t\t\tN[k] = j, K(!1);\n\t\t\t}\n\t\t});\n\t}, [D]);\n\tlet ee = N.step === 1 && N.labelStep === 1 && 3 <= N.max && N.max <= 10, te = () => {\n\t\tX.min = 3, X.max = 10, N.max = 10, N.step = 1, N.labelStep = 1, o({\n\t\t\t...i,\n\t\t\trange: N\n\t\t});\n\t}, ne = (e) => {\n\t\tif (e.includes(\"Plot\")) {\n\t\t\tif (!ee) {\n\t\t\t\tE({\n\t\t\t\t\topen: !0,\n\t\t\t\t\ttitle: \"Warning\",\n\t\t\t\t\ttext: \"The selected chart type does not support the current chart configuration. Reset chart configuration?\",\n\t\t\t\t\tonConfirm: () => {\n\t\t\t\t\t\tte(), J(), K(!1), o({\n\t\t\t\t\t\t\t...i,\n\t\t\t\t\t\t\trange: N,\n\t\t\t\t\t\t\tchartType: e\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tonClose: () => {\n\t\t\t\t\t\tK(!1);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tX.min = 3, X.max = 10, o({\n\t\t\t\t...i,\n\t\t\t\tchartType: e\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\to({\n\t\t\t...i,\n\t\t\tchartType: e\n\t\t});\n\t};\n\treturn /* @__PURE__ */ l(f, { children: [\n\t\t/* @__PURE__ */ c(u, {\n\t\t\tvariant: \"subtitle1\",\n\t\t\tchildren: \"Configure Chart\"\n\t\t}),\n\t\t/* @__PURE__ */ l(p, { children: [\n\t\t\t/* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(e, {\n\t\t\t\tvalue: i.chartType,\n\t\t\t\tonChange: (e) => ne(e.target.value),\n\t\t\t\tavailableChartTypes: C,\n\t\t\t\tchartTypeLabel: w\n\t\t\t}), /* @__PURE__ */ c(_, {\n\t\t\t\tlabel: \"Max Value\",\n\t\t\t\tvalue: N.max,\n\t\t\t\tmin: X(i.chartType).min,\n\t\t\t\tmax: X(i.chartType).max,\n\t\t\t\tvariant: \"outlined\",\n\t\t\t\tonChange: (e, t) => $(\"max\", t, e)\n\t\t\t})] }),\n\t\t\t!i.chartType.includes(\"Plot\") && G,\n\t\t\tR && /* @__PURE__ */ l(v, { children: [\n\t\t\t\t/* @__PURE__ */ c(\"div\", { children: /* @__PURE__ */ c(u, { children: \"Dimensions(px)\" }) }),\n\t\t\t\t/* @__PURE__ */ l(m, { children: [/* @__PURE__ */ c(g, {\n\t\t\t\t\tlabel: \"Width\",\n\t\t\t\t\tvalue: L.width,\n\t\t\t\t\tmin: V.min,\n\t\t\t\t\tmax: V.max,\n\t\t\t\t\tstep: V.step,\n\t\t\t\t\tvariant: \"outlined\",\n\t\t\t\t\tonChange: (e, t) => Z(\"width\", t)\n\t\t\t\t}), /* @__PURE__ */ c(y, { children: \"Min 50, Max 700\" })] }),\n\t\t\t\t/* @__PURE__ */ l(m, { children: [/* @__PURE__ */ c(g, {\n\t\t\t\t\tlabel: \"Height\",\n\t\t\t\t\tvalue: L.height,\n\t\t\t\t\tmin: H.min,\n\t\t\t\t\tmax: H.max,\n\t\t\t\t\tstep: H.step,\n\t\t\t\t\tvariant: \"outlined\",\n\t\t\t\t\tonChange: (e, t) => Z(\"height\", t)\n\t\t\t\t}), /* @__PURE__ */ c(y, { children: \"Min 400, Max 700\" })] })\n\t\t\t] })\n\t\t] }),\n\t\t/* @__PURE__ */ c(a, {\n\t\t\topen: T.open,\n\t\t\ttitle: T.title,\n\t\t\ttext: T.text,\n\t\t\tonClose: T.onClose,\n\t\t\tonConfirm: T.onConfirm\n\t\t})\n\t] });\n};\nb.propTypes = {\n\tchartDimensions: r.object,\n\tdomain: r.object,\n\tgridValues: r.object,\n\tlabelValues: r.object,\n\tmodel: r.object,\n\tonChange: r.func,\n\trange: r.object,\n\tchartDimension: r.object,\n\tsize: r.object,\n\tstudentNewCategoryDefaultLabel: r.object,\n\tavailableChartTypes: r.object,\n\tchartTypeLabel: r.string\n};\n//#endregion\nexport { b as default };\n","//#region src/index.ts\nvar e = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"model.updated\";\n\t}\n\tconstructor(t, n = !1) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tdetail: {\n\t\t\t\tupdate: t,\n\t\t\t\treset: n\n\t\t\t}\n\t\t}), this.update = t, this.reset = n;\n\t}\n}, t = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"delete.image\";\n\t}\n\tconstructor(t, n) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tdetail: {\n\t\t\t\tsrc: t,\n\t\t\t\tdone: n\n\t\t\t}\n\t\t}), this.src = t, this.done = n;\n\t}\n}, n = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"insert.image\";\n\t}\n\tconstructor(t) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tdetail: t\n\t\t}), this.handler = t;\n\t}\n}, r = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"delete.sound\";\n\t}\n\tconstructor(t, n) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tdetail: {\n\t\t\t\tsrc: t,\n\t\t\t\tdone: n\n\t\t\t}\n\t\t}), this.src = t, this.done = n;\n\t}\n}, i = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"insert.sound\";\n\t}\n\tconstructor(t) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tdetail: t\n\t\t}), this.handler = t;\n\t}\n};\n//#endregion\nexport { t as DeleteImageEvent, r as DeleteSoundEvent, n as InsertImageEvent, i as InsertSoundEvent, e as ModelUpdatedEvent };\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/charting/configure/src/charting-config.jsx\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { Chart } from '@pie-lib/charting';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Checkbox from '@mui/material/Checkbox';\nimport { color } from '@pie-lib/render-ui';\n\nimport Typography from '@mui/material/Typography';\n\nconst Container: any = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n display: 'flex',\n flex: 1,\n}));\n\nconst Title: any = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(1),\n}));\n\nconst Column: any = styled('div')({\n flex: 1,\n});\n\nconst CustomColorCheckbox: any = styled(Checkbox)({\n color: `${color.tertiary()} !important`,\n});\n\nconst restoreCorrectAnswer = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n let correctResponseDefinition = [];\n\n (data || []).forEach((category, currentIndex) => {\n const { editable, interactive } = category;\n\n const label = editable && correctAnswer[currentIndex]?.label ? correctAnswer[currentIndex].label : category.label;\n\n const value =\n interactive && correctAnswer[currentIndex]?.value ? correctAnswer[currentIndex].value : category.value;\n\n correctResponseDefinition[currentIndex] = {\n label: label,\n value: value,\n editable: category.editable,\n interactive: category.interactive,\n };\n });\n\n return correctResponseDefinition;\n};\n\nexport class ChartingConfig extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array,\n labelsPlaceholders: PropTypes.object,\n titlePlaceholder: PropTypes.object,\n showPixelGuides: PropTypes.bool,\n authorNewCategoryDefaults: PropTypes.object,\n chartingOptions: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false,\n },\n };\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n changeData = (data) => this.props.onChange({ ...this.props.model, data });\n\n changeAddRemoveEnabled: any = (value) => {\n const { model } = this.props;\n const correctAnswer = restoreCorrectAnswer(model.correctAnswer.data, model.data);\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'This change will remove any correct answer categories that are not part of the initial item configuration.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n this.props.onChange({\n ...this.props.model,\n addCategoryEnabled: value,\n correctAnswer: { data: correctAnswer },\n }),\n ),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n } else {\n this.props.onChange({ ...this.props.model, addCategoryEnabled: value });\n }\n };\n\n changeTitle = (title) => this.props.onChange({ ...this.props.model, title });\n\n changeLabel = (type, label) =>\n this.props.onChange({\n ...this.props.model,\n [type]: {\n ...this.props.model[type],\n label,\n },\n });\n\n render() {\n const {\n model,\n charts,\n labelsPlaceholders,\n titlePlaceholder,\n showPixelGuides,\n authorNewCategoryDefaults,\n chartingOptions,\n mathMlOptions = {},\n labelsCharactersLimit,\n } = this.props;\n const { dialog } = this.state;\n const { domain = {}, range = {} } = model || {};\n\n return (\n <div>\n <Title>Define Initial Chart Attributes</Title>\n <Container>\n <Column key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to set up the chart as it will initially appear to students.</span>\n </Typography>\n\n <Chart\n defineChart={true}\n chartingOptions={chartingOptions}\n showPixelGuides={showPixelGuides}\n chartType={model.chartType}\n size={model.graph}\n domain={domain}\n range={range}\n charts={charts}\n // index is a property used for setting the correct answer data; it's needed in order to remove categories from other data sets from the same index it was removed from the initial data\n data={model.data.map((category, index) => ({\n ...category,\n index: index,\n }))}\n title={model.title}\n onDataChange={this.changeData}\n onChangeTitle={this.changeTitle}\n onChangeLabels={this.changeLabel}\n addCategoryEnabled={true}\n changeInteractiveEnabled={model.changeInteractiveEnabled}\n changeEditableEnabled={model.changeEditableEnabled}\n categoryDefaultLabel={authorNewCategoryDefaults?.label}\n categoryDefaults={authorNewCategoryDefaults}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder?.label}\n mathMlOptions={mathMlOptions}\n labelsCharactersLimit={labelsCharactersLimit}\n />\n {model.changeAddCategoryEnabled && (\n <div>\n <CustomColorCheckbox\n checked={model.addCategoryEnabled}\n onChange={(e) => {\n this.changeAddRemoveEnabled(e.target.checked);\n }}\n />\n {chartingOptions?.addCategory?.authoringLabel}\n </div>\n )}\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </Column>\n </Container>\n </div>\n );\n }\n}\n\nexport default ChartingConfig;\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/charting/configure/src/correct-response.jsx\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { Chart } from '@pie-lib/charting';\nimport { cloneDeep, isEqual } from '@pie-element/shared-lodash';\n\nimport Typography from '@mui/material/Typography';\n\nconst Container: any = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n display: 'flex',\n flex: 1,\n}));\n\nconst Column: any = styled('div')({\n flex: 1,\n});\n\nconst ChartError: any = styled('div')(({ theme }) => ({\n border: `2px solid ${theme.palette.error.main}`,\n}));\n\nconst ErrorText: any = styled(Typography)(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst Title: any = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(1),\n}));\n\nconst addCategoryProps = (correctAnswer, data) =>\n correctAnswer.map((correct, index) => ({\n ...correct,\n editable: index < data.length ? data[index].editable : true,\n interactive: index < data.length ? data[index].interactive : true,\n deletable: index >= data.length ? true : false,\n }));\n\nconst updateCorrectResponseData = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n const correctAnswerData = [...correctAnswer];\n let correctResponseDefinition = [];\n\n (data || []).forEach((category, currentIndex) => {\n const editable = category.editable;\n const interactive = category.interactive;\n const label = editable && correctAnswer[currentIndex]?.label ? correctAnswer[currentIndex].label : category.label;\n const value =\n (interactive && correctAnswer[currentIndex]?.value) || (interactive && correctAnswer[currentIndex]?.value == 0)\n ? correctAnswer[currentIndex].value\n : category.value;\n\n correctResponseDefinition[currentIndex] = {\n label: label,\n value: value,\n editable: category.editable,\n interactive: category.interactive,\n };\n });\n\n if (correctResponseDefinition.length < correctAnswer.length) {\n const missingCategories = (correctAnswerData || []).slice(correctResponseDefinition.length, correctAnswer.length);\n\n return addCategoryProps((correctResponseDefinition || []).concat(missingCategories), data);\n }\n\n return correctResponseDefinition;\n};\n\nconst insertCategory = (correctAnswer, data) => {\n const positionToInsert = data.length - 1;\n // eslint-disable-next-line no-unused-vars\n const { editable, interactive, deletable, ...categoryToInsert } = data[data.length - 1];\n\n (correctAnswer || []).splice(positionToInsert, 0, categoryToInsert);\n const correctAnswerData = [...correctAnswer];\n\n return addCategoryProps(correctAnswerData, data);\n};\n\nconst removeCategory = (correctAnswer, data, positionToRemove) => {\n (correctAnswer || []).splice(positionToRemove, 1);\n const correctAnswerData = [...correctAnswer];\n\n return addCategoryProps(correctAnswerData, data);\n};\n\nexport const getUpdatedCategories = (nextProps, prevProps, prevState) => {\n const nextData = (nextProps && nextProps.model && nextProps.model.data) || [];\n const data = (prevProps && prevProps.model && prevProps.model.data) || [];\n const nextCorrectAnswerDataCopy = cloneDeep(\n (nextProps && nextProps.model && nextProps.model.correctAnswer && nextProps.model.correctAnswer.data) || [],\n );\n\n const categoriesCopy = cloneDeep(prevState ? prevState.categories : []);\n\n let nextCategories = [];\n\n // Handle categories insertion in Define Chart\n if (nextData.length > data.length) {\n nextCategories = insertCategory(nextCorrectAnswerDataCopy, nextData);\n return nextCategories;\n }\n\n // Handle categories removal from Define Chart\n if (nextData.length < data.length) {\n let removedIndex = nextData.length;\n\n // we need to remove the category from the correct answer data and categories, from the same index it was removed from the data\n // index is a property of the nextData category\n for (let index = 0; index < nextData.length; index++) {\n if (nextData[index].index !== index) {\n removedIndex = index;\n break;\n }\n }\n\n nextCategories = removeCategory(categoriesCopy, nextData, removedIndex);\n return nextCategories;\n }\n\n // Handle category value or label changes in Define Chart\n // Handle categories update in Define Correct Response Chart\n nextCategories = updateCorrectResponseData(nextCorrectAnswerDataCopy, nextData);\n\n return nextCategories;\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n correctAnswerErrors: PropTypes.object,\n studentNewCategoryDefaultLabel: PropTypes.string,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array,\n error: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n categories: [],\n };\n }\n\n changeData: any = (data) => {\n const { model, onChange } = this.props;\n const { correctAnswer } = model || {};\n\n onChange({\n ...model,\n correctAnswer: {\n ...correctAnswer,\n // eslint-disable-next-line no-unused-vars\n data: data.map(({ interactive, editable, index, ...keepAttrs }) => keepAttrs),\n },\n });\n };\n\n componentDidMount() {\n const initialCategories = getUpdatedCategories(this.props, this.props, null);\n\n this.setState({\n categories:\n initialCategories || updateCorrectResponseData(this.props.model.correctAnswer.data, this.props.model.data),\n });\n }\n\n componentDidUpdate(prevProps, prevState) {\n const nextCategories = getUpdatedCategories(this.props, prevProps, prevState);\n\n if (nextCategories && !isEqual(nextCategories, this.state.categories)) {\n this.changeData(nextCategories);\n this.setState({ categories: nextCategories });\n }\n }\n\n render() {\n const {\n model,\n charts,\n error,\n studentNewCategoryDefaultLabel,\n correctAnswerErrors,\n mathMlOptions = {},\n labelsPlaceholders = {},\n } = this.props;\n const { categories } = this.state;\n\n const { domain = {}, range = {} } = model || {};\n const { identicalError, categoriesError } = correctAnswerErrors || {};\n\n return (\n <div>\n <Title>Define Correct Response</Title>\n <Container>\n <Column key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to define the correct answer.</span>\n </Typography>\n\n {identicalError || categoriesError ? (\n <ChartError key={`correct-response-graph-${model.correctAnswer.name}`}>\n <Chart\n chartType={model.chartType}\n size={model.graph}\n domain={domain}\n range={range}\n charts={charts}\n data={categories}\n title={model.title}\n onDataChange={this.changeData}\n addCategoryEnabled={model.addCategoryEnabled}\n categoryDefaultLabel={studentNewCategoryDefaultLabel}\n error={error}\n mathMlOptions={mathMlOptions}\n labelsPlaceholders={labelsPlaceholders}\n />\n </ChartError>\n ) : (\n <div key={`correct-response-graph-${model.correctAnswer.name}`}>\n <Chart\n chartType={model.chartType}\n size={model.graph}\n domain={domain}\n range={range}\n charts={charts}\n data={categories}\n title={model.title}\n onDataChange={this.changeData}\n addCategoryEnabled={model.addCategoryEnabled}\n categoryDefaultLabel={studentNewCategoryDefaultLabel}\n error={error}\n mathMlOptions={mathMlOptions}\n labelsPlaceholders={labelsPlaceholders}\n />\n </div>\n )}\n\n {(identicalError || categoriesError) && (\n <ErrorText component=\"div\" type=\"body1\">\n <span>{identicalError || categoriesError}</span>\n </ErrorText>\n )}\n </Column>\n </Container>\n </div>\n );\n }\n}\n\nexport default CorrectResponse;\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/charting/configure/src/utils.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\n// this file is almost duplicated from graphing/configure/src/utils.js; the same logic must be used in charting\nimport { isEqual } from '@pie-element/shared-lodash';\n\nconst VALID_GRID_VALUES = [\n 0.01, 0.02, 0.04, 0.05, 0.0625, 0.1, 0.125, 0.2, 0.25, 0.5, 1, 2, 3, 4, 5, 8, 10, 12, 15, 20, 40, 50, 64, 100, 500,\n 1000,\n];\n\n// same as VALID_GRID_VALUES but next values are excluded: 0.04, 0.0625, 0.125, 3, 4, 8, 12, 15, 40, 64\nconst PREFERRED_VALID_GRID_VALUES = [0.01, 0.02, 0.05, 0.1, 0.2, 0.25, 0.5, 1, 2, 5, 10, 20, 50, 100, 500, 1000];\n\nexport const VALID_LABEL_VALUES = {\n 0.01: [0, 0.01, 0.02, 0.04, 0.05, 0.1],\n 0.02: [0, 0.02, 0.04, 0.1],\n 0.04: [0, 0.04, 0.08, 0.16, 0.2],\n 0.05: [0, 0.05, 0.1, 0.2, 0.25],\n 0.0625: [0, 0.0625, 0.125, 0.25, 0.5],\n 0.1: [0, 0.1, 0.2, 0.4, 0.5, 1],\n 0.125: [0, 0.125, 0.25, 0.5, 1],\n 0.2: [0, 0.2, 0.5, 0.1],\n 0.25: [0, 0.25, 0.5, 1, 2],\n 0.5: [0, 0.5, 1, 2],\n 1: [0, 1, 2, 4, 5, 10],\n 2: [0, 2, 4, 8, 10],\n 3: [0, 3, 6, 12, 15],\n 4: [0, 4, 8, 16, 20],\n 5: [0, 5, 10, 20, 25],\n 8: [0, 8, 16, 32, 40, 64],\n 10: [0, 10, 20, 40, 50, 100],\n 12: [0, 12, 24],\n 15: [0, 15, 30, 60],\n 20: [0, 20, 40, 80, 100],\n 40: [0, 40, 80, 160, 200],\n 50: [0, 50, 100, 200, 250],\n 64: [0, 64, 128],\n 100: [0, 100, 200, 400, 500],\n 500: [0, 500, 1000, 2500],\n 1000: [0, 1000, 2000, 4000, 5000],\n};\n\nexport const getGridValues = (axis, size, prefferedValues = false) => {\n const minValue = (10 * (axis.max - axis.min)) / size;\n const maxValue = minValue * 10;\n\n // if preferred values should be used enforce all values to be used if the axis step\n // is included in all supported values and not included in preferred values\n const useAllValues =\n prefferedValues && !PREFERRED_VALID_GRID_VALUES.includes(axis.step) && VALID_GRID_VALUES.includes(axis.step);\n const values = !prefferedValues || useAllValues ? VALID_GRID_VALUES : PREFERRED_VALID_GRID_VALUES;\n\n return values.filter((value) => value >= minValue && value <= maxValue);\n};\n\nexport const getLabelValues = (value) => VALID_LABEL_VALUES[value] || [];\n\nexport const applyConstraints = (axis, size, oldGridValues, oldLabelValues) => {\n const gridValues = getGridValues(axis, size);\n let labelValues = getLabelValues(axis.step || 1);\n\n if (!isEqual(oldGridValues, gridValues) && !gridValues.includes(axis.step)) {\n const preferredValues = getGridValues(axis, size, true);\n const lowestValue = preferredValues[0] || 1;\n\n axis.step = lowestValue;\n labelValues = getLabelValues(lowestValue);\n\n if (!labelValues.includes(axis.labelStep)) {\n axis.labelStep = lowestValue;\n }\n\n return { gridValues, labelValues };\n }\n\n if (!isEqual(oldLabelValues, labelValues) && !labelValues.includes(axis.labelStep)) {\n axis.labelStep = axis.step;\n }\n\n return { gridValues, labelValues };\n};\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/charting/configure/src/configure.jsx\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { chartTypes, ConfigureChartPanel } from '@pie-lib/charting';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@mui/material/Typography';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\n\nimport ChartingConfig from './charting-config.js';\nimport CorrectResponse from './correct-response.js';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils.js';\n\nconst log = debug('@pie-element:graphing:configure');\nconst { Panel, toggle, radio, dropdown, textField } = settings;\n\nconst PromptHolder: any = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst Description: any = styled(Typography)(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst ErrorText: any = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst charts = [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n];\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n chartingOptions: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n const { range = {}, graph } = props.model || {};\n const gridValues = { range: getGridValues(range, graph.height, true) };\n const labelValues = { range: getLabelValues(range.step || 1) };\n\n this.state = { gridValues, labelValues };\n }\n\n onRationaleChange = (rationale) => this.props.onModelChanged({ ...this.props.model, rationale });\n\n onPromptChange = (prompt) => this.props.onModelChanged({ ...this.props.model, prompt });\n\n onTeacherInstructionsChange = (teacherInstructions) =>\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n\n onChartTypeChange = (chartType) => this.props.onModelChanged({ ...this.props.model, chartType });\n\n onConfigChange: any = (config) => {\n const { model, onModelChanged } = this.props;\n const { gridValues: oldGridValues, labelValues: oldLabelValues } = this.state;\n const updatedModel = { ...model, ...config };\n const { graph, range } = updatedModel;\n const gridValues = {};\n const labelValues = {};\n\n const rangeConstraints = applyConstraints(range, graph.height, oldGridValues.range, oldLabelValues.range);\n\n gridValues.range = rangeConstraints.gridValues;\n labelValues.range = rangeConstraints.labelValues;\n\n this.setState({ gridValues, labelValues });\n onModelChanged(updatedModel);\n };\n\n render() {\n const { configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n\n log('[render] model', model);\n\n const { graph } = model;\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n chartDimensions = {},\n authorNewCategoryDefaults = {},\n labelsPlaceholders = {},\n instruction = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n titlePlaceholder = {},\n withRubric = {},\n chartingOptions = {},\n availableChartTypes = {},\n mathMlOptions = {},\n chartTypeLabel,\n language = {},\n languageChoices = {},\n labelsCharactersLimit,\n } = configuration || {};\n const {\n errors,\n extraCSSRules,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n studentNewCategoryDefaultLabel,\n } = model || {};\n const {\n categoryErrors,\n correctAnswerErrors,\n prompt: promptError,\n rationale: rationaleError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n const { gridValues, labelValues } = this.state;\n const showPixeGuides = chartDimensions.showInConfigPanel || true;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelItemType = {\n changeInteractiveEnabled:\n chartingOptions.changeInteractive?.settings && toggle(chartingOptions.changeInteractive.settingsLabel),\n changeEditableEnabled:\n chartingOptions.changeEditable?.settings && toggle(chartingOptions.changeEditable.settingsLabel),\n changeAddCategoryEnabled:\n chartingOptions.addCategory?.settings && toggle(chartingOptions.addCategory.settingsLabel),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n instruction: instruction.settings && textField(instruction.label),\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelItemType,\n Properties: panelProperties,\n }}\n />\n }\n >\n <Description component=\"div\" type=\"body1\">\n {instruction?.label || ''}\n </Description>\n\n {teacherInstructionsEnabled && (\n <PromptHolder label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n spellCheck={spellCheckEnabled}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </PromptHolder>\n )}\n\n {promptEnabled && (\n <PromptHolder label={prompt.label}>\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={promptError}\n spellCheck={spellCheckEnabled}\n disableUnderline\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n <ConfigureChartPanel\n model={model}\n onChange={this.onConfigChange}\n gridValues={gridValues}\n labelValues={labelValues}\n chartDimensions={chartDimensions}\n charts={charts}\n studentNewCategoryDefaultLabel={studentNewCategoryDefaultLabel}\n availableChartTypes={availableChartTypes}\n chartTypeLabel={chartTypeLabel}\n />\n\n <ChartingConfig\n model={model}\n onChange={onModelChanged}\n charts={charts}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder}\n showPixelGuides={showPixeGuides}\n authorNewCategoryDefaults={authorNewCategoryDefaults}\n chartingOptions={chartingOptions}\n mathMlOptions={mathMlOptions}\n labelsCharactersLimit={labelsCharactersLimit}\n />\n\n <CorrectResponse\n config={graph}\n model={model}\n onChange={onModelChanged}\n charts={charts}\n error={categoryErrors}\n correctAnswerErrors={correctAnswerErrors}\n studentNewCategoryDefaultLabel={studentNewCategoryDefaultLabel}\n mathMlOptions={mathMlOptions}\n labelsPlaceholders={labelsPlaceholders}\n />\n\n {rationaleEnabled && (\n <PromptHolder label={rationale.label || 'Rationale'}>\n <EditableHtml\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\n imageSupport={imageSupport}\n error={rationaleError}\n spellCheck={spellCheckEnabled}\n pluginProps={getPluginProps(rationale?.inputConfiguration)}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <ErrorText>{rationaleError}</ErrorText>}\n </PromptHolder>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default Configure;\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/charting/configure/src/defaults.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\n/**\n * NOTE: There's no functionality described for graphTitle,\n * rationale, scoringType, studentInstructions, teacherInstructions\n * so there's no implementation (they are only added in model)\n */\n\n// const createCategory = (label, value) => ({\n// label,\n// value,\n// interactive: true,\n// editable: true\n// });\n\nexport default {\n model: {\n addCategoryEnabled: true,\n changeAddCategoryEnabled: false,\n changeEditableEnabled: false,\n changeInteractiveEnabled: false,\n chartType: 'lineCross',\n correctAnswer: {},\n data: [],\n domain: {},\n graph: { width: 480, height: 480 },\n prompt: '',\n promptEnabled: true,\n range: { label: '', max: 1, min: 0, labelStep: 1 },\n rationale: '',\n rationaleEnabled: true,\n scoringType: 'all or nothing',\n studentInstructionsEnabled: true,\n studentNewCategoryDefaultLabel: 'New Category',\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n title: '',\n },\n configuration: {\n baseInputConfiguration: {\n h3: { disabled: true },\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n chartDimensions: {\n settings: false,\n label: 'Chart Dimensions',\n showInConfigPanel: true,\n width: {\n min: 50,\n max: 700,\n step: 20,\n },\n height: {\n min: 400,\n max: 700,\n step: 20,\n },\n },\n authorNewCategoryDefaults: {\n settings: false,\n label: 'Category',\n interactive: true,\n editable: false,\n },\n availableChartTypes: {\n bar: 'Bar Chart',\n histogram: 'Histogram',\n lineDot: 'Line Chart ●',\n lineCross: 'Line Chart x',\n dotPlot: 'Dot/Line Plot ⬤',\n linePlot: 'Dot/Line Plot X',\n },\n chartTypeLabel: 'ChartType',\n studentNewCategoryDefaultLabel: {\n settings: false,\n label: 'Category',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n settingsPanelDisabled: false,\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n title: {\n settings: false,\n label: 'Chart Title',\n },\n instruction: {\n settings: false,\n label:\n 'This item type provides various types of interactive charts. Depending upon how an item is configured,\\n' +\n ' students can change the heights of bars (or other similar chart elements) created by the author; relabel bars\\n' +\n ' created by the author; and/or add new bars, label them, and set their heights.',\n },\n titlePlaceholder: {\n settings: false,\n label: 'Click here to add a title',\n },\n labelsPlaceholders: {\n left: 'Click here to add a label for this axis',\n right: '',\n top: '',\n bottom: 'Click here to add a label for this axis',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n chartingOptions: {\n changeInteractive: {\n settings: false,\n authoringLabel: 'Student can set value',\n settingsLabel: 'Allow non-interactive categories',\n },\n changeEditable: {\n settings: false,\n authoringLabel: 'Student can edit name',\n settingsLabel: 'Allow editable category names',\n },\n addCategory: {\n settings: false,\n authoringLabel: 'Student can add categories',\n settingsLabel: 'Allow changes to whether students can add categories',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n },\n};\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/charting/configure/src/index.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-element/shared-configure-events';\nimport debug from 'debug';\nimport Configure from './configure.js';\nimport defaultValues from './defaults.js';\nimport { renderMath } from '@pie-element/shared-math-rendering-mathjax';\n\nconst log = debug('pie-elements:graphing:configure');\n\nexport default class GraphLinesConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({ ...defaultValues.model, ...model });\n\n constructor() {\n super();\n this._root = null;\n this._model = GraphLinesConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = GraphLinesConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...defaultValues.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find((option) => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n onModelChanged(model) {\n this._model = model;\n this._render();\n\n log('[onModelChanged]: ', this._model);\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n\n onConfigurationChanged(config) {\n this._configuration = config;\n this._render();\n }\n\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\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}"],"mappings":"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"}