@pie-element/charting 7.2.0 → 7.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [7.2.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@7.2.0...@pie-element/charting@7.2.1) (2023-12-19)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **charting:** fix state sync issues in Define Correct Response Chart when Define Chart data is modified or removed PD-3164 ([baa04e6](https://github.com/pie-framework/pie-elements/commit/baa04e6942c1f8e4279f2b83327c142464fde6e5))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [7.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@7.1.1...@pie-element/charting@7.2.0) (2023-12-19)
|
|
7
18
|
|
|
8
19
|
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [7.1.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@7.1.0...@pie-element/charting-configure@7.1.1) (2023-12-19)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **charting:** fix state sync issues in Define Correct Response Chart when Define Chart data is modified or removed PD-3164 ([baa04e6](https://github.com/pie-framework/pie-elements/commit/baa04e6942c1f8e4279f2b83327c142464fde6e5))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [7.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@7.0.3...@pie-element/charting-configure@7.1.0) (2023-12-19)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -163,10 +163,16 @@ var getUpdatedCategories = function getUpdatedCategories(nextProps, prevProps, p
|
|
|
163
163
|
|
|
164
164
|
|
|
165
165
|
if (nextData.length < data.length) {
|
|
166
|
-
var removedIndex =
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
166
|
+
var removedIndex = nextData.length; // we need to remove the category from the correct answer data and categories, from the same index it was removed from the data
|
|
167
|
+
// index is a property of the nextData category
|
|
168
|
+
|
|
169
|
+
for (var index = 0; index < nextData.length; index++) {
|
|
170
|
+
if (nextData[index].index !== index) {
|
|
171
|
+
removedIndex = index;
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
170
176
|
nextCategories = removeCategory(categoriesCopy, nextData, removedIndex);
|
|
171
177
|
return nextCategories;
|
|
172
178
|
} // Handle category value or label changes in Define Chart
|
|
@@ -174,15 +180,6 @@ var getUpdatedCategories = function getUpdatedCategories(nextProps, prevProps, p
|
|
|
174
180
|
|
|
175
181
|
|
|
176
182
|
nextCategories = updateCorrectResponseData(nextCorrectAnswerDataCopy, nextData);
|
|
177
|
-
nextCorrectAnswerDataCopy.forEach(function (answer, currentIndex) {
|
|
178
|
-
var dataExists = currentIndex < nextData.length;
|
|
179
|
-
nextCorrectAnswerDataCopy[currentIndex] = {
|
|
180
|
-
editable: dataExists ? nextData[currentIndex].editable : true,
|
|
181
|
-
interactive: dataExists ? nextData[currentIndex].interactive : true,
|
|
182
|
-
label: dataExists && nextData[currentIndex].editable ? answer.label : dataExists ? nextData[currentIndex].label : answer.label,
|
|
183
|
-
value: dataExists && nextData[currentIndex].interactive ? answer.value : dataExists ? nextData[currentIndex].value : answer.value
|
|
184
|
-
};
|
|
185
|
-
});
|
|
186
183
|
return nextCategories;
|
|
187
184
|
};
|
|
188
185
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/correct-response.jsx"],"names":["styles","theme","container","marginBottom","spacing","unit","display","flex","button","marginTop","cursor","background","palette","grey","padding","width","borderRadius","column","chartError","border","error","main","errorText","fontSize","typography","color","paddingTop","title","addCategoryProps","correctAnswer","data","map","correct","index","editable","length","interactive","deletable","updateCorrectResponseData","correctAnswerData","correctResponseDefinition","forEach","category","currentIndex","label","value","missingCategories","slice","concat","insertCategory","positionToInsert","categoryToInsert","splice","removeCategory","positionToRemove","getUpdatedCategories","nextProps","prevProps","prevState","nextData","model","nextCorrectAnswerDataCopy","categoriesCopy","categories","nextCategories","removedIndex","findIndex","item","answer","dataExists","CorrectResponse","props","onChange","keepAttrs","state","initialCategories","setState","changeData","classes","charts","studentNewCategoryDefaultLabel","correctAnswerErrors","mathMlOptions","domain","range","identicalError","categoriesError","name","chartType","graph","addCategoryEnabled","React","Component","PropTypes","object","isRequired","string","func","array"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Chart } from '@pie-lib/pie-toolbox/charting';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = (theme) => ({\n container: {\n marginBottom: theme.spacing.unit * 2.5,\n display: 'flex',\n flex: 1,\n },\n button: {\n marginTop: theme.spacing.unit * 3,\n cursor: 'pointer',\n background: theme.palette.grey[200],\n padding: theme.spacing.unit * 2,\n width: 'fit-content',\n borderRadius: '4px',\n },\n column: {\n flex: 1,\n },\n chartError: {\n border: `2px solid ${theme.palette.error.main}`,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n title: {\n marginBottom: theme.spacing.unit,\n },\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((nextProps && nextProps.model && nextProps.model.correctAnswer && nextProps.model.correctAnswer.data) || []);\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 = data.findIndex((item, index) => item.index !== index);\n removedIndex = removedIndex === -1 ? nextData.length : removedIndex;\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 nextCorrectAnswerDataCopy.forEach((answer, currentIndex) => {\n const dataExists = currentIndex < nextData.length;\n nextCorrectAnswerDataCopy[currentIndex] = {\n editable: dataExists ? nextData[currentIndex].editable : true,\n interactive: dataExists ? nextData[currentIndex].interactive : true,\n label:\n dataExists && nextData[currentIndex].editable\n ? answer.label\n : dataExists\n ? nextData[currentIndex].label\n : answer.label,\n value:\n dataExists && nextData[currentIndex].interactive\n ? answer.value\n : dataExists\n ? nextData[currentIndex].value\n : answer.value,\n };\n });\n\n return nextCategories;\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\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 = (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 classes,\n model,\n charts,\n error,\n studentNewCategoryDefaultLabel,\n correctAnswerErrors,\n mathMlOptions = {},\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 <div className={classes.title}>Define Correct Response</div>\n <div className={classes.container}>\n <div className={classes.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 <div\n key={`correct-response-graph-${model.correctAnswer.name}`}\n className={identicalError || categoriesError ? classes.chartError : ''}\n >\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 />\n </div>\n\n {(identicalError || categoriesError) && (\n <Typography component=\"div\" type=\"body1\" className={classes.errorText}>\n <span>{identicalError || categoriesError}</span>\n </Typography>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
|
|
1
|
+
{"version":3,"sources":["../src/correct-response.jsx"],"names":["styles","theme","container","marginBottom","spacing","unit","display","flex","button","marginTop","cursor","background","palette","grey","padding","width","borderRadius","column","chartError","border","error","main","errorText","fontSize","typography","color","paddingTop","title","addCategoryProps","correctAnswer","data","map","correct","index","editable","length","interactive","deletable","updateCorrectResponseData","correctAnswerData","correctResponseDefinition","forEach","category","currentIndex","label","value","missingCategories","slice","concat","insertCategory","positionToInsert","categoryToInsert","splice","removeCategory","positionToRemove","getUpdatedCategories","nextProps","prevProps","prevState","nextData","model","nextCorrectAnswerDataCopy","categoriesCopy","categories","nextCategories","removedIndex","CorrectResponse","props","onChange","keepAttrs","state","initialCategories","setState","changeData","classes","charts","studentNewCategoryDefaultLabel","correctAnswerErrors","mathMlOptions","domain","range","identicalError","categoriesError","name","chartType","graph","addCategoryEnabled","React","Component","PropTypes","object","isRequired","string","func","array"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Chart } from '@pie-lib/pie-toolbox/charting';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = (theme) => ({\n container: {\n marginBottom: theme.spacing.unit * 2.5,\n display: 'flex',\n flex: 1,\n },\n button: {\n marginTop: theme.spacing.unit * 3,\n cursor: 'pointer',\n background: theme.palette.grey[200],\n padding: theme.spacing.unit * 2,\n width: 'fit-content',\n borderRadius: '4px',\n },\n column: {\n flex: 1,\n },\n chartError: {\n border: `2px solid ${theme.palette.error.main}`,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n title: {\n marginBottom: theme.spacing.unit,\n },\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((nextProps && nextProps.model && nextProps.model.correctAnswer && nextProps.model.correctAnswer.data) || []);\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 classes: PropTypes.object.isRequired,\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 = (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 classes,\n model,\n charts,\n error,\n studentNewCategoryDefaultLabel,\n correctAnswerErrors,\n mathMlOptions = {},\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 <div className={classes.title}>Define Correct Response</div>\n <div className={classes.container}>\n <div className={classes.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 <div\n key={`correct-response-graph-${model.correctAnswer.name}`}\n className={identicalError || categoriesError ? classes.chartError : ''}\n >\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 />\n </div>\n\n {(identicalError || categoriesError) && (\n <Typography component=\"div\" type=\"body1\" className={classes.errorText}>\n <span>{identicalError || categoriesError}</span>\n </Typography>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
|
package/configure/package.json
CHANGED
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "7.2.
|
|
7
|
+
"version": "7.2.1",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"author": "",
|
|
24
24
|
"license": "ISC",
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "e85047f0961dba0bbb18b630c99d676972c5309f",
|
|
26
26
|
"main": "lib/index.js",
|
|
27
27
|
"module": "src/index.js"
|
|
28
28
|
}
|