@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
@@ -0,0 +1,192 @@
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.ChartingConfig = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _styles = require("@mui/material/styles");
12
+ var _charting = require("@pie-lib/charting");
13
+ var _configUi = require("@pie-lib/config-ui");
14
+ var _Checkbox = _interopRequireDefault(require("@mui/material/Checkbox"));
15
+ var _renderUi = require("@pie-lib/render-ui");
16
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
+ const Container = (0, _styles.styled)('div')(({
19
+ theme
20
+ }) => ({
21
+ marginBottom: theme.spacing(2.5),
22
+ display: 'flex',
23
+ flex: 1
24
+ }));
25
+ const Title = (0, _styles.styled)('div')(({
26
+ theme
27
+ }) => ({
28
+ marginBottom: theme.spacing(1)
29
+ }));
30
+ const Column = (0, _styles.styled)('div')({
31
+ flex: 1
32
+ });
33
+ const CustomColorCheckbox = (0, _styles.styled)(_Checkbox.default)({
34
+ color: `${_renderUi.color.tertiary()} !important`
35
+ });
36
+ const restoreCorrectAnswer = (correctAnswer, data) => {
37
+ if (!correctAnswer) {
38
+ return data;
39
+ }
40
+ let correctResponseDefinition = [];
41
+ (data || []).forEach((category, currentIndex) => {
42
+ const {
43
+ editable,
44
+ interactive
45
+ } = category;
46
+ const label = editable && correctAnswer[currentIndex]?.label ? correctAnswer[currentIndex].label : category.label;
47
+ const value = interactive && correctAnswer[currentIndex]?.value ? correctAnswer[currentIndex].value : category.value;
48
+ correctResponseDefinition[currentIndex] = {
49
+ label: label,
50
+ value: value,
51
+ editable: category.editable,
52
+ interactive: category.interactive
53
+ };
54
+ });
55
+ return correctResponseDefinition;
56
+ };
57
+ class ChartingConfig extends React.Component {
58
+ constructor(props) {
59
+ super(props);
60
+ (0, _defineProperty2.default)(this, "handleAlertDialog", (open, callback) => this.setState({
61
+ dialog: {
62
+ open
63
+ }
64
+ }, callback));
65
+ (0, _defineProperty2.default)(this, "changeData", data => this.props.onChange({
66
+ ...this.props.model,
67
+ data
68
+ }));
69
+ (0, _defineProperty2.default)(this, "changeAddRemoveEnabled", value => {
70
+ const {
71
+ model
72
+ } = this.props;
73
+ const correctAnswer = restoreCorrectAnswer(model.correctAnswer.data, model.data);
74
+ if (!value) {
75
+ this.setState({
76
+ dialog: {
77
+ open: true,
78
+ title: 'Warning',
79
+ text: 'This change will remove any correct answer categories that are not part of the initial item configuration.',
80
+ onConfirm: () => this.handleAlertDialog(false, this.props.onChange({
81
+ ...this.props.model,
82
+ addCategoryEnabled: value,
83
+ correctAnswer: {
84
+ data: correctAnswer
85
+ }
86
+ })),
87
+ onClose: () => this.handleAlertDialog(false)
88
+ }
89
+ });
90
+ } else {
91
+ this.props.onChange({
92
+ ...this.props.model,
93
+ addCategoryEnabled: value
94
+ });
95
+ }
96
+ });
97
+ (0, _defineProperty2.default)(this, "changeTitle", title => this.props.onChange({
98
+ ...this.props.model,
99
+ title
100
+ }));
101
+ (0, _defineProperty2.default)(this, "changeLabel", (type, label) => this.props.onChange({
102
+ ...this.props.model,
103
+ [type]: {
104
+ ...this.props.model[type],
105
+ label
106
+ }
107
+ }));
108
+ this.state = {
109
+ dialog: {
110
+ open: false
111
+ }
112
+ };
113
+ }
114
+ render() {
115
+ const {
116
+ model,
117
+ charts,
118
+ labelsPlaceholders,
119
+ titlePlaceholder,
120
+ showPixelGuides,
121
+ authorNewCategoryDefaults,
122
+ chartingOptions,
123
+ mathMlOptions = {},
124
+ labelsCharactersLimit
125
+ } = this.props;
126
+ const {
127
+ dialog
128
+ } = this.state;
129
+ const {
130
+ domain = {},
131
+ range = {}
132
+ } = model || {};
133
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Title, null, "Define Initial Chart Attributes"), /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Column, {
134
+ key: "graph"
135
+ }, /*#__PURE__*/React.createElement(_Typography.default, {
136
+ component: "div",
137
+ type: "body1"
138
+ }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set up the chart as it will initially appear to students.")), /*#__PURE__*/React.createElement(_charting.Chart, {
139
+ defineChart: true,
140
+ chartingOptions: chartingOptions,
141
+ showPixelGuides: showPixelGuides,
142
+ chartType: model.chartType,
143
+ size: model.graph,
144
+ domain: domain,
145
+ range: range,
146
+ charts: charts
147
+ // 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
148
+ ,
149
+ data: model.data.map((category, index) => ({
150
+ ...category,
151
+ index: index
152
+ })),
153
+ title: model.title,
154
+ onDataChange: this.changeData,
155
+ onChangeTitle: this.changeTitle,
156
+ onChangeLabels: this.changeLabel,
157
+ addCategoryEnabled: true,
158
+ changeInteractiveEnabled: model.changeInteractiveEnabled,
159
+ changeEditableEnabled: model.changeEditableEnabled,
160
+ categoryDefaultLabel: authorNewCategoryDefaults?.label,
161
+ categoryDefaults: authorNewCategoryDefaults,
162
+ labelsPlaceholders: labelsPlaceholders,
163
+ titlePlaceholder: titlePlaceholder?.label,
164
+ mathMlOptions: mathMlOptions,
165
+ labelsCharactersLimit: labelsCharactersLimit
166
+ }), model.changeAddCategoryEnabled && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(CustomColorCheckbox, {
167
+ checked: model.addCategoryEnabled,
168
+ onChange: e => {
169
+ this.changeAddRemoveEnabled(e.target.checked);
170
+ }
171
+ }), chartingOptions?.addCategory?.authoringLabel), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
172
+ open: dialog.open,
173
+ title: dialog.title,
174
+ text: dialog.text,
175
+ onClose: dialog.onClose,
176
+ onConfirm: dialog.onConfirm
177
+ }))));
178
+ }
179
+ }
180
+ exports.ChartingConfig = ChartingConfig;
181
+ (0, _defineProperty2.default)(ChartingConfig, "propTypes", {
182
+ model: _propTypes.default.object.isRequired,
183
+ onChange: _propTypes.default.func.isRequired,
184
+ charts: _propTypes.default.array,
185
+ labelsPlaceholders: _propTypes.default.object,
186
+ titlePlaceholder: _propTypes.default.object,
187
+ showPixelGuides: _propTypes.default.bool,
188
+ authorNewCategoryDefaults: _propTypes.default.object,
189
+ chartingOptions: _propTypes.default.object
190
+ });
191
+ var _default = exports.default = ChartingConfig;
192
+ //# sourceMappingURL=charting-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charting-config.js","names":["React","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_styles","_charting","_configUi","_Checkbox","_renderUi","_Typography","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Container","styled","theme","marginBottom","spacing","display","flex","Title","Column","CustomColorCheckbox","Checkbox","color","tertiary","restoreCorrectAnswer","correctAnswer","data","correctResponseDefinition","forEach","category","currentIndex","editable","interactive","label","value","ChartingConfig","Component","constructor","props","_defineProperty2","open","callback","setState","dialog","onChange","model","title","text","onConfirm","handleAlertDialog","addCategoryEnabled","onClose","type","state","render","charts","labelsPlaceholders","titlePlaceholder","showPixelGuides","authorNewCategoryDefaults","chartingOptions","mathMlOptions","labelsCharactersLimit","domain","range","createElement","key","component","Chart","defineChart","chartType","size","graph","map","index","onDataChange","changeData","onChangeTitle","changeTitle","onChangeLabels","changeLabel","changeInteractiveEnabled","changeEditableEnabled","categoryDefaultLabel","categoryDefaults","changeAddCategoryEnabled","checked","changeAddRemoveEnabled","target","addCategory","authoringLabel","AlertDialog","exports","PropTypes","object","isRequired","func","array","bool","_default"],"sources":["../src/charting-config.jsx"],"sourcesContent":["import * 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 = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n display: 'flex',\n flex: 1,\n}));\n\nconst Title = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(1),\n}));\n\nconst Column = styled('div')({\n flex: 1,\n});\n\nconst CustomColorCheckbox = 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 = (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"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,312 @@
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.Configure = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styles = require("@mui/material/styles");
11
+ var _charting = require("@pie-lib/charting");
12
+ var _configUi = require("@pie-lib/config-ui");
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _debug = _interopRequireDefault(require("debug"));
15
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
16
+ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
17
+ var _chartingConfig = _interopRequireDefault(require("./charting-config"));
18
+ var _correctResponse = _interopRequireDefault(require("./correct-response"));
19
+ var _utils = require("./utils");
20
+ const log = (0, _debug.default)('@pie-element:graphing:configure');
21
+ const {
22
+ Panel,
23
+ toggle,
24
+ radio,
25
+ dropdown,
26
+ textField
27
+ } = _configUi.settings;
28
+ const PromptHolder = (0, _styles.styled)(_configUi.InputContainer)(({
29
+ theme
30
+ }) => ({
31
+ width: '100%',
32
+ paddingTop: theme.spacing(2),
33
+ marginBottom: theme.spacing(2)
34
+ }));
35
+ const Description = (0, _styles.styled)(_Typography.default)(({
36
+ theme
37
+ }) => ({
38
+ marginBottom: theme.spacing(2.5)
39
+ }));
40
+ const ErrorText = (0, _styles.styled)('div')(({
41
+ theme
42
+ }) => ({
43
+ fontSize: theme.typography.fontSize - 2,
44
+ color: theme.palette.error.main,
45
+ paddingTop: theme.spacing(1)
46
+ }));
47
+ const charts = [_charting.chartTypes.Bar(), _charting.chartTypes.Histogram(), _charting.chartTypes.LineDot(), _charting.chartTypes.LineCross(), _charting.chartTypes.DotPlot(), _charting.chartTypes.LinePlot()];
48
+ class Configure extends _react.default.Component {
49
+ constructor(props) {
50
+ super(props);
51
+ (0, _defineProperty2.default)(this, "onRationaleChange", rationale => this.props.onModelChanged({
52
+ ...this.props.model,
53
+ rationale
54
+ }));
55
+ (0, _defineProperty2.default)(this, "onPromptChange", prompt => this.props.onModelChanged({
56
+ ...this.props.model,
57
+ prompt
58
+ }));
59
+ (0, _defineProperty2.default)(this, "onTeacherInstructionsChange", teacherInstructions => this.props.onModelChanged({
60
+ ...this.props.model,
61
+ teacherInstructions
62
+ }));
63
+ (0, _defineProperty2.default)(this, "onChartTypeChange", chartType => this.props.onModelChanged({
64
+ ...this.props.model,
65
+ chartType
66
+ }));
67
+ (0, _defineProperty2.default)(this, "onConfigChange", config => {
68
+ const {
69
+ model,
70
+ onModelChanged
71
+ } = this.props;
72
+ const {
73
+ gridValues: oldGridValues,
74
+ labelValues: oldLabelValues
75
+ } = this.state;
76
+ const updatedModel = {
77
+ ...model,
78
+ ...config
79
+ };
80
+ const {
81
+ graph,
82
+ range
83
+ } = updatedModel;
84
+ const gridValues = {};
85
+ const labelValues = {};
86
+ const rangeConstraints = (0, _utils.applyConstraints)(range, graph.height, oldGridValues.range, oldLabelValues.range);
87
+ gridValues.range = rangeConstraints.gridValues;
88
+ labelValues.range = rangeConstraints.labelValues;
89
+ this.setState({
90
+ gridValues,
91
+ labelValues
92
+ });
93
+ onModelChanged(updatedModel);
94
+ });
95
+ const {
96
+ range: _range = {},
97
+ graph: _graph
98
+ } = props.model || {};
99
+ const _gridValues = {
100
+ range: (0, _utils.getGridValues)(_range, _graph.height, true)
101
+ };
102
+ const _labelValues = {
103
+ range: (0, _utils.getLabelValues)(_range.step || 1)
104
+ };
105
+ this.state = {
106
+ gridValues: _gridValues,
107
+ labelValues: _labelValues
108
+ };
109
+ }
110
+ render() {
111
+ const {
112
+ configuration,
113
+ imageSupport,
114
+ model,
115
+ onConfigurationChanged,
116
+ onModelChanged,
117
+ uploadSoundSupport
118
+ } = this.props;
119
+ log('[render] model', model);
120
+ const {
121
+ graph
122
+ } = model;
123
+ const {
124
+ baseInputConfiguration = {},
125
+ contentDimensions = {},
126
+ chartDimensions = {},
127
+ authorNewCategoryDefaults = {},
128
+ labelsPlaceholders = {},
129
+ instruction = {},
130
+ maxImageWidth = {},
131
+ maxImageHeight = {},
132
+ prompt = {},
133
+ rationale = {},
134
+ scoringType = {},
135
+ settingsPanelDisabled,
136
+ spellCheck = {},
137
+ studentInstructions = {},
138
+ teacherInstructions = {},
139
+ titlePlaceholder = {},
140
+ withRubric = {},
141
+ chartingOptions = {},
142
+ availableChartTypes = {},
143
+ mathMlOptions = {},
144
+ chartTypeLabel,
145
+ language = {},
146
+ languageChoices = {},
147
+ labelsCharactersLimit
148
+ } = configuration || {};
149
+ const {
150
+ errors,
151
+ extraCSSRules,
152
+ promptEnabled,
153
+ rationaleEnabled,
154
+ spellCheckEnabled,
155
+ teacherInstructionsEnabled,
156
+ studentNewCategoryDefaultLabel
157
+ } = model || {};
158
+ const {
159
+ categoryErrors,
160
+ correctAnswerErrors,
161
+ prompt: promptError,
162
+ rationale: rationaleError,
163
+ teacherInstructions: teacherInstructionsError
164
+ } = errors || {};
165
+ const {
166
+ gridValues,
167
+ labelValues
168
+ } = this.state;
169
+ const showPixeGuides = chartDimensions.showInConfigPanel || true;
170
+ const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
171
+ const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
172
+ const panelItemType = {
173
+ changeInteractiveEnabled: chartingOptions.changeInteractive?.settings && toggle(chartingOptions.changeInteractive.settingsLabel),
174
+ changeEditableEnabled: chartingOptions.changeEditable?.settings && toggle(chartingOptions.changeEditable.settingsLabel),
175
+ changeAddCategoryEnabled: chartingOptions.addCategory?.settings && toggle(chartingOptions.addCategory.settingsLabel)
176
+ };
177
+ const panelProperties = {
178
+ teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
179
+ studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
180
+ rationaleEnabled: rationale.settings && toggle(rationale.label),
181
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
182
+ promptEnabled: prompt.settings && toggle(prompt.label),
183
+ scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring']),
184
+ rubricEnabled: withRubric?.settings && toggle(withRubric?.label),
185
+ 'language.enabled': language.settings && toggle(language.label, true),
186
+ language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),
187
+ instruction: instruction.settings && textField(instruction.label)
188
+ };
189
+ const getPluginProps = (props = {}) => ({
190
+ ...baseInputConfiguration,
191
+ ...props
192
+ });
193
+ return /*#__PURE__*/_react.default.createElement(_configUi.layout.ConfigLayout, {
194
+ extraCSSRules: extraCSSRules,
195
+ dimensions: contentDimensions,
196
+ hideSettings: settingsPanelDisabled,
197
+ settings: /*#__PURE__*/_react.default.createElement(Panel, {
198
+ model: model,
199
+ configuration: configuration,
200
+ onChangeModel: onModelChanged,
201
+ onChangeConfiguration: onConfigurationChanged,
202
+ groups: {
203
+ Settings: panelItemType,
204
+ Properties: panelProperties
205
+ }
206
+ })
207
+ }, /*#__PURE__*/_react.default.createElement(Description, {
208
+ component: "div",
209
+ type: "body1"
210
+ }, instruction?.label || ''), teacherInstructionsEnabled && /*#__PURE__*/_react.default.createElement(PromptHolder, {
211
+ label: teacherInstructions.label
212
+ }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
213
+ markup: model.teacherInstructions || '',
214
+ onChange: this.onTeacherInstructionsChange,
215
+ imageSupport: imageSupport,
216
+ nonEmpty: false,
217
+ error: teacherInstructionsError,
218
+ spellCheck: spellCheckEnabled,
219
+ pluginProps: getPluginProps(teacherInstructions?.inputConfiguration),
220
+ maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
221
+ maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
222
+ uploadSoundSupport: uploadSoundSupport,
223
+ languageCharactersProps: [{
224
+ language: 'spanish'
225
+ }, {
226
+ language: 'special'
227
+ }],
228
+ mathMlOptions: mathMlOptions
229
+ }), teacherInstructionsError && /*#__PURE__*/_react.default.createElement(ErrorText, null, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react.default.createElement(PromptHolder, {
230
+ label: prompt.label
231
+ }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
232
+ markup: model.prompt,
233
+ onChange: this.onPromptChange,
234
+ imageSupport: imageSupport,
235
+ nonEmpty: false,
236
+ error: promptError,
237
+ spellCheck: spellCheckEnabled,
238
+ disableUnderline: true,
239
+ pluginProps: getPluginProps(prompt?.inputConfiguration),
240
+ maxImageWidth: defaultImageMaxWidth,
241
+ maxImageHeight: defaultImageMaxHeight,
242
+ uploadSoundSupport: uploadSoundSupport,
243
+ languageCharactersProps: [{
244
+ language: 'spanish'
245
+ }, {
246
+ language: 'special'
247
+ }],
248
+ mathMlOptions: mathMlOptions
249
+ }), promptError && /*#__PURE__*/_react.default.createElement(ErrorText, null, promptError)), /*#__PURE__*/_react.default.createElement(_charting.ConfigureChartPanel, {
250
+ model: model,
251
+ onChange: this.onConfigChange,
252
+ gridValues: gridValues,
253
+ labelValues: labelValues,
254
+ chartDimensions: chartDimensions,
255
+ charts: charts,
256
+ studentNewCategoryDefaultLabel: studentNewCategoryDefaultLabel,
257
+ availableChartTypes: availableChartTypes,
258
+ chartTypeLabel: chartTypeLabel
259
+ }), /*#__PURE__*/_react.default.createElement(_chartingConfig.default, {
260
+ model: model,
261
+ onChange: onModelChanged,
262
+ charts: charts,
263
+ labelsPlaceholders: labelsPlaceholders,
264
+ titlePlaceholder: titlePlaceholder,
265
+ showPixelGuides: showPixeGuides,
266
+ authorNewCategoryDefaults: authorNewCategoryDefaults,
267
+ chartingOptions: chartingOptions,
268
+ mathMlOptions: mathMlOptions,
269
+ labelsCharactersLimit: labelsCharactersLimit
270
+ }), /*#__PURE__*/_react.default.createElement(_correctResponse.default, {
271
+ config: graph,
272
+ model: model,
273
+ onChange: onModelChanged,
274
+ charts: charts,
275
+ error: categoryErrors,
276
+ correctAnswerErrors: correctAnswerErrors,
277
+ studentNewCategoryDefaultLabel: studentNewCategoryDefaultLabel,
278
+ mathMlOptions: mathMlOptions,
279
+ labelsPlaceholders: labelsPlaceholders
280
+ }), rationaleEnabled && /*#__PURE__*/_react.default.createElement(PromptHolder, {
281
+ label: rationale.label || 'Rationale'
282
+ }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
283
+ markup: model.rationale || '',
284
+ onChange: this.onRationaleChange,
285
+ imageSupport: imageSupport,
286
+ error: rationaleError,
287
+ spellCheck: spellCheckEnabled,
288
+ pluginProps: getPluginProps(rationale?.inputConfiguration),
289
+ maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
290
+ maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
291
+ uploadSoundSupport: uploadSoundSupport,
292
+ languageCharactersProps: [{
293
+ language: 'spanish'
294
+ }, {
295
+ language: 'special'
296
+ }],
297
+ mathMlOptions: mathMlOptions
298
+ }), rationaleError && /*#__PURE__*/_react.default.createElement(ErrorText, null, rationaleError)));
299
+ }
300
+ }
301
+ exports.Configure = Configure;
302
+ (0, _defineProperty2.default)(Configure, "propTypes", {
303
+ onModelChanged: _propTypes.default.func,
304
+ onConfigurationChanged: _propTypes.default.func,
305
+ imageSupport: _propTypes.default.object,
306
+ uploadSoundSupport: _propTypes.default.object,
307
+ model: _propTypes.default.object.isRequired,
308
+ configuration: _propTypes.default.object.isRequired,
309
+ chartingOptions: _propTypes.default.object
310
+ });
311
+ var _default = exports.default = Configure;
312
+ //# sourceMappingURL=configure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.js","names":["_react","_interopRequireDefault","require","_styles","_charting","_configUi","_propTypes","_debug","_Typography","_editableHtmlTipTap","_chartingConfig","_correctResponse","_utils","log","debug","Panel","toggle","radio","dropdown","textField","settings","PromptHolder","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","Description","Typography","ErrorText","fontSize","typography","color","palette","error","main","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","Configure","React","Component","constructor","props","_defineProperty2","default","rationale","onModelChanged","model","prompt","teacherInstructions","chartType","config","gridValues","oldGridValues","labelValues","oldLabelValues","state","updatedModel","graph","range","rangeConstraints","applyConstraints","height","setState","getGridValues","getLabelValues","step","render","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","contentDimensions","chartDimensions","authorNewCategoryDefaults","labelsPlaceholders","instruction","maxImageWidth","maxImageHeight","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","titlePlaceholder","withRubric","chartingOptions","availableChartTypes","mathMlOptions","chartTypeLabel","language","languageChoices","labelsCharactersLimit","errors","extraCSSRules","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","studentNewCategoryDefaultLabel","categoryErrors","correctAnswerErrors","promptError","rationaleError","teacherInstructionsError","showPixeGuides","showInConfigPanel","defaultImageMaxWidth","defaultImageMaxHeight","panelItemType","changeInteractiveEnabled","changeInteractive","settingsLabel","changeEditableEnabled","changeEditable","changeAddCategoryEnabled","addCategory","panelProperties","label","studentInstructionsEnabled","rubricEnabled","enabled","options","getPluginProps","createElement","layout","ConfigLayout","dimensions","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","component","type","markup","onChange","onTeacherInstructionsChange","nonEmpty","pluginProps","inputConfiguration","languageCharactersProps","onPromptChange","disableUnderline","ConfigureChartPanel","onConfigChange","showPixelGuides","onRationaleChange","exports","PropTypes","func","object","isRequired","_default"],"sources":["../src/configure.jsx"],"sourcesContent":["import 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';\nimport CorrectResponse from './correct-response';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils';\n\nconst log = debug('@pie-element:graphing:configure');\nconst { Panel, toggle, radio, dropdown, textField } = settings;\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst Description = styled(Typography)(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst ErrorText = 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 = (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"],"mappings":"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","ignoreList":[]}