@pie-element/number-line 5.13.2 → 5.13.7

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,22 @@
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
+ ## [5.13.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line@5.13.6...@pie-element/number-line@5.13.7) (2021-12-23)
7
+
8
+ **Note:** Version bump only for package @pie-element/number-line
9
+
10
+
11
+
12
+
13
+
14
+ ## [5.13.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line@5.13.4...@pie-element/number-line@5.13.5) (2021-12-13)
15
+
16
+ **Note:** Version bump only for package @pie-element/number-line
17
+
18
+
19
+
20
+
21
+
6
22
  ## [5.13.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line@5.13.1...@pie-element/number-line@5.13.2) (2021-11-29)
7
23
 
8
24
  **Note:** Version bump only for package @pie-element/number-line
@@ -3,6 +3,22 @@
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
+ ## [4.8.12](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-configure@4.8.11...@pie-element/number-line-configure@4.8.12) (2021-12-23)
7
+
8
+ **Note:** Version bump only for package @pie-element/number-line-configure
9
+
10
+
11
+
12
+
13
+
14
+ ## [4.8.10](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-configure@4.8.9...@pie-element/number-line-configure@4.8.10) (2021-12-13)
15
+
16
+ **Note:** Version bump only for package @pie-element/number-line-configure
17
+
18
+
19
+
20
+
21
+
6
22
  ## [4.8.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-configure@4.8.6...@pie-element/number-line-configure@4.8.7) (2021-11-29)
7
23
 
8
24
  **Note:** Version bump only for package @pie-element/number-line-configure
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@pie-element/number-line-configure",
3
3
  "private": true,
4
- "version": "4.8.7",
4
+ "version": "4.8.12",
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.js",
7
7
  "dependencies": {
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@pie-framework/pie-configure-events": "^1.2.0",
10
- "@pie-lib/config-ui": "^10.10.12",
11
- "@pie-lib/editable-html": "^7.17.12",
10
+ "@pie-lib/config-ui": "^10.10.14",
11
+ "@pie-lib/editable-html": "^7.17.14",
12
12
  "react": "^16.8.1",
13
13
  "react-dom": "^16.8.1"
14
14
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/number-line-controller",
3
3
  "private": true,
4
- "version": "4.3.19",
4
+ "version": "4.3.22",
5
5
  "description": "Controller logic for @pie-ui/number-line",
6
6
  "keywords": [
7
7
  "pie",
@@ -337,11 +337,10 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
337
337
  width: width
338
338
  }
339
339
  }, prompt && /*#__PURE__*/_react["default"].createElement("div", {
340
- className: classes.prompt,
341
- dangerouslySetInnerHTML: {
342
- __html: prompt
343
- }
344
- }), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
340
+ className: classes.prompt
341
+ }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
342
+ prompt: prompt
343
+ })), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
345
344
  style: {
346
345
  width: adjustedWidth
347
346
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/number-line/index.jsx"],"names":["styles","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","padding","boxSizing","black_on_rose","white_on_black","prompt","verticalAlign","marginBottom","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","corrected","correct","incorrect","disabled","correctResponse","emptyAnswer","feedback","colorContrast","addElement","bind","elementsSelected","arrows","height","availableTypes","title","width","getSize","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","names","__html","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport React from 'react';\nimport Toggle from '@pie-lib/correct-answer-toggle';\nimport { buildElementModel } from './graph/elements/builder';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { color } from '@pie-lib/render-ui';\nimport injectSheet from 'react-jss';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\n\nexport { Graph };\n\nconst styles = {\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n padding: '10px',\n boxSizing: 'unset',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n};\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType\n ? initialType.toLowerCase()\n : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain } = this.props.model.graph;\n\n let elementData = buildElementModel(\n x,\n this.state.elementType,\n domain,\n ticks.minor\n );\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return (\n isNumber(maxNumberOfPoints) &&\n maxNumberOfPoints > 0 &&\n (answer || []).length >= maxNumberOfPoints\n );\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement } = this.props;\n let {\n showCorrectAnswer,\n answers,\n selectedElements,\n showMaxPointsWarning,\n elementType,\n } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected =\n !disabled && selectedElements && selectedElements.length > 0;\n const {\n ticks,\n domain,\n arrows,\n maxNumberOfPoints,\n height,\n availableTypes,\n title,\n } = graph;\n const width = this.getSize('width', 400, 1600, 600);\n let graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: height || 100,\n arrows,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer\n ? getCorrectAnswerElements()\n : getAnswerElements();\n\n let maxPointsMessage = () =>\n `You can only add ${maxNumberOfPoints} element${\n maxNumberOfPoints == 1 ? '' : 's'\n }`;\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const names = classNames(\n classes.numberLine,\n classes.mainContainer,\n classes[colorContrast]\n );\n\n return (\n <div className={names} style={{ width }}>\n {prompt && (\n <div\n className={classes.prompt}\n dangerouslySetInnerHTML={{ __html: prompt }}\n />\n )}\n <div>\n <div style={{ width: adjustedWidth }}>\n <Toggle\n show={\n isArray(correctResponse) &&\n correctResponse.length &&\n !emptyAnswer\n }\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n />\n </div>\n {!disabled && (\n <PointChooser\n elementType={elementType}\n showDeleteButton={elementsSelected}\n onDeleteClick={deleteElements}\n onElementType={this.elementTypeSelected.bind(this)}\n onClearElements={this.clearAll.bind(this)}\n onUndoElement={this.undo.bind(this)}\n icons={getIcons()}\n />\n )}\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {title && (\n <div\n className={classes.graphTitle}\n dangerouslySetInnerHTML={{ __html: title }}\n />\n )}\n {showMaxPointsWarning && (\n <Feedback\n type=\"info\"\n width={adjustedWidth}\n message={maxPointsMessage()}\n />\n )}\n {feedback && !showCorrectAnswer && (\n <Feedback {...feedback} width={adjustedWidth} />\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(NumberLine);\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/number-line/index.jsx"],"names":["styles","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","padding","boxSizing","black_on_rose","white_on_black","prompt","verticalAlign","marginBottom","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","corrected","correct","incorrect","disabled","correctResponse","emptyAnswer","feedback","colorContrast","addElement","bind","elementsSelected","arrows","height","availableTypes","title","width","getSize","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","names","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","__html","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport React from 'react';\nimport Toggle from '@pie-lib/correct-answer-toggle';\nimport { buildElementModel } from './graph/elements/builder';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {color, PreviewPrompt} from '@pie-lib/render-ui';\nimport injectSheet from 'react-jss';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\n\nexport { Graph };\n\nconst styles = {\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n padding: '10px',\n boxSizing: 'unset',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n};\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType\n ? initialType.toLowerCase()\n : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain } = this.props.model.graph;\n\n let elementData = buildElementModel(\n x,\n this.state.elementType,\n domain,\n ticks.minor\n );\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return (\n isNumber(maxNumberOfPoints) &&\n maxNumberOfPoints > 0 &&\n (answer || []).length >= maxNumberOfPoints\n );\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement } = this.props;\n let {\n showCorrectAnswer,\n answers,\n selectedElements,\n showMaxPointsWarning,\n elementType,\n } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected =\n !disabled && selectedElements && selectedElements.length > 0;\n const {\n ticks,\n domain,\n arrows,\n maxNumberOfPoints,\n height,\n availableTypes,\n title,\n } = graph;\n const width = this.getSize('width', 400, 1600, 600);\n let graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: height || 100,\n arrows,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer\n ? getCorrectAnswerElements()\n : getAnswerElements();\n\n let maxPointsMessage = () =>\n `You can only add ${maxNumberOfPoints} element${\n maxNumberOfPoints == 1 ? '' : 's'\n }`;\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const names = classNames(\n classes.numberLine,\n classes.mainContainer,\n classes[colorContrast]\n );\n\n return (\n <div className={names} style={{ width }}>\n {prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n <div>\n <div style={{ width: adjustedWidth }}>\n <Toggle\n show={\n isArray(correctResponse) &&\n correctResponse.length &&\n !emptyAnswer\n }\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n />\n </div>\n {!disabled && (\n <PointChooser\n elementType={elementType}\n showDeleteButton={elementsSelected}\n onDeleteClick={deleteElements}\n onElementType={this.elementTypeSelected.bind(this)}\n onClearElements={this.clearAll.bind(this)}\n onUndoElement={this.undo.bind(this)}\n icons={getIcons()}\n />\n )}\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {title && (\n <div\n className={classes.graphTitle}\n dangerouslySetInnerHTML={{ __html: title }}\n />\n )}\n {showMaxPointsWarning && (\n <Feedback\n type=\"info\"\n width={adjustedWidth}\n message={maxPointsMessage()}\n />\n )}\n {feedback && !showCorrectAnswer && (\n <Feedback {...feedback} width={adjustedWidth} />\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(NumberLine);\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/number-line",
3
- "version": "5.13.2",
3
+ "version": "5.13.7",
4
4
  "repository": "pie-framework/pie-elements",
5
5
  "description": "",
6
6
  "publishConfig": {
@@ -8,11 +8,11 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
- "@pie-lib/correct-answer-toggle": "^2.3.32",
11
+ "@pie-lib/correct-answer-toggle": "^2.3.34",
12
12
  "@pie-lib/feedback": "^0.4.27",
13
13
  "@pie-lib/icons": "^2.4.25",
14
14
  "@pie-lib/math-rendering": "^2.3.12",
15
- "@pie-lib/render-ui": "^4.12.3",
15
+ "@pie-lib/render-ui": "^4.12.4",
16
16
  "classnames": "^2.2.5",
17
17
  "d3-scale": "^3.2.1",
18
18
  "d3-selection": "^1.4.1",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "author": "pie framework developers",
29
29
  "license": "ISC",
30
- "gitHead": "25d4d90078b237c54893757434bb09258812b803",
30
+ "gitHead": "aed4c49b18e323dd0fc7fbf2186039723d406751",
31
31
  "scripts": {
32
32
  "postpublish": "../../scripts/postpublish"
33
33
  },