@pie-element/number-line 5.11.2 → 5.11.3-next.1016
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 +189 -0
- package/configure/CHANGELOG.md +142 -0
- package/configure/lib/arrows.js +3 -3
- package/configure/lib/arrows.js.map +1 -1
- package/configure/lib/card-bar.js +9 -2
- package/configure/lib/card-bar.js.map +1 -1
- package/configure/lib/defaults.js +7 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/domain.js +3 -3
- package/configure/lib/domain.js.map +1 -1
- package/configure/lib/index.js +40 -7
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +90 -15
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/number-text-field.js +4 -4
- package/configure/lib/number-text-field.js.map +1 -1
- package/configure/lib/point-config.js +3 -3
- package/configure/lib/point-config.js.map +1 -1
- package/configure/lib/size.js +2 -2
- package/configure/lib/size.js.map +1 -1
- package/configure/lib/ticks.js +8 -4
- package/configure/lib/ticks.js.map +1 -1
- package/configure/lib/utils.js +14 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +3 -3
- package/controller/CHANGELOG.md +32 -0
- package/controller/lib/defaults.js +0 -3
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +89 -9
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/docs/config-schema.json +16 -0
- package/docs/config-schema.json.md +12 -0
- package/docs/demo/generate.js +2 -4
- package/docs/pie-schema.json +29 -1
- package/docs/pie-schema.json.md +23 -0
- package/lib/data-converter.js +1 -1
- package/lib/data-converter.js.map +1 -1
- package/lib/draggable/index.js +1 -1
- package/lib/index.js +16 -5
- package/lib/index.js.map +1 -1
- package/lib/number-line/colors.js +1 -1
- package/lib/number-line/feedback.js.map +1 -1
- package/lib/number-line/graph/elements/line.js +3 -3
- package/lib/number-line/graph/elements/line.js.map +1 -1
- package/lib/number-line/graph/elements/point.js +1 -1
- package/lib/number-line/graph/elements/point.js.map +1 -1
- package/lib/number-line/graph/elements/ray.js +12 -5
- package/lib/number-line/graph/elements/ray.js.map +1 -1
- package/lib/number-line/graph/index.js +6 -4
- package/lib/number-line/graph/index.js.map +1 -1
- package/lib/number-line/graph/stacks.js +1 -1
- package/lib/number-line/graph/stacks.js.map +1 -1
- package/lib/number-line/graph/tick-utils.js +11 -7
- package/lib/number-line/graph/tick-utils.js.map +1 -1
- package/lib/number-line/graph/ticks.js +58 -14
- package/lib/number-line/graph/ticks.js.map +1 -1
- package/lib/number-line/index.js +10 -9
- package/lib/number-line/index.js.map +1 -1
- package/lib/number-line/point-chooser/index.js +1 -1
- package/lib/number-line/point-chooser/index.js.map +1 -1
- package/lib/number-line/transitions/fade.js.map +1 -1
- package/package.json +5 -5
- package/module/configure.js +0 -1335
- package/module/controller.js +0 -22387
- package/module/demo.js +0 -134
- package/module/element.js +0 -10272
- package/module/index.html +0 -16
- package/module/manifest.json +0 -14
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = exports.Ticks = exports.
|
|
8
|
+
exports["default"] = exports.Ticks = exports.TickValidator = exports.Tick = void 0;
|
|
9
9
|
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
@@ -31,7 +31,7 @@ var _renderUi = require("@pie-lib/render-ui");
|
|
|
31
31
|
|
|
32
32
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
33
33
|
|
|
34
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
34
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
35
35
|
|
|
36
36
|
var style = {
|
|
37
37
|
text: {
|
|
@@ -76,9 +76,13 @@ var Tick = /*#__PURE__*/function (_React$Component) {
|
|
|
76
76
|
|
|
77
77
|
var _super = _createSuper(Tick);
|
|
78
78
|
|
|
79
|
-
function Tick() {
|
|
79
|
+
function Tick(props) {
|
|
80
|
+
var _this;
|
|
81
|
+
|
|
80
82
|
(0, _classCallCheck2["default"])(this, Tick);
|
|
81
|
-
|
|
83
|
+
_this = _super.call(this, props);
|
|
84
|
+
_this.wasRendered = false;
|
|
85
|
+
return _this;
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
(0, _createClass2["default"])(Tick, [{
|
|
@@ -86,16 +90,24 @@ var Tick = /*#__PURE__*/function (_React$Component) {
|
|
|
86
90
|
value: function componentDidMount() {
|
|
87
91
|
//center align the tick text
|
|
88
92
|
if (this.text) {
|
|
93
|
+
var fraction = this.props.fraction;
|
|
94
|
+
|
|
89
95
|
var _this$text$getBBox = this.text.getBBox(),
|
|
90
96
|
width = _this$text$getBBox.width;
|
|
91
97
|
|
|
92
98
|
this.text.setAttribute('x', width / 2 * -1);
|
|
99
|
+
|
|
100
|
+
if (fraction && !this.wasRendered) {
|
|
101
|
+
// used for rendering the line fraction
|
|
102
|
+
this.wasRendered = true;
|
|
103
|
+
this.forceUpdate();
|
|
104
|
+
}
|
|
93
105
|
}
|
|
94
106
|
}
|
|
95
107
|
}, {
|
|
96
108
|
key: "render",
|
|
97
109
|
value: function render() {
|
|
98
|
-
var
|
|
110
|
+
var _this2 = this;
|
|
99
111
|
|
|
100
112
|
//the domain value
|
|
101
113
|
var _this$props = this.props,
|
|
@@ -103,10 +115,29 @@ var Tick = /*#__PURE__*/function (_React$Component) {
|
|
|
103
115
|
y = _this$props.y,
|
|
104
116
|
type = _this$props.type,
|
|
105
117
|
classes = _this$props.classes,
|
|
106
|
-
xScale = _this$props.xScale
|
|
107
|
-
|
|
118
|
+
xScale = _this$props.xScale,
|
|
119
|
+
fraction = _this$props.fraction;
|
|
120
|
+
var displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;
|
|
108
121
|
var labelTick = type === 'major';
|
|
109
122
|
var height = labelTick ? 20 : 10;
|
|
123
|
+
|
|
124
|
+
var _ref = this.text && this.text.getBBox() || {},
|
|
125
|
+
_ref$width = _ref.width,
|
|
126
|
+
textWidth = _ref$width === void 0 ? 0 : _ref$width,
|
|
127
|
+
_ref$height = _ref.height,
|
|
128
|
+
textHeight = _ref$height === void 0 ? 0 : _ref$height,
|
|
129
|
+
_ref$x = _ref.x,
|
|
130
|
+
textX = _ref$x === void 0 ? 0 : _ref$x,
|
|
131
|
+
_ref$y = _ref.y,
|
|
132
|
+
textY = _ref$y === void 0 ? 0 : _ref$y;
|
|
133
|
+
|
|
134
|
+
var xText = !fraction ? Number(x.toFixed(2)) : !displayFraction ? x.n * x.s : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("tspan", {
|
|
135
|
+
x: "0",
|
|
136
|
+
dy: "0.71em"
|
|
137
|
+
}, x.n * x.s), /*#__PURE__*/_react["default"].createElement("tspan", {
|
|
138
|
+
x: "0",
|
|
139
|
+
dy: "1.11em"
|
|
140
|
+
}, x.d));
|
|
110
141
|
return /*#__PURE__*/_react["default"].createElement("g", {
|
|
111
142
|
opacity: "1",
|
|
112
143
|
transform: "translate(".concat(xScale(x), ", ").concat(y, ")")
|
|
@@ -116,14 +147,21 @@ var Tick = /*#__PURE__*/function (_React$Component) {
|
|
|
116
147
|
y2: height / 2,
|
|
117
148
|
x1: "0.5",
|
|
118
149
|
x2: "0.5"
|
|
150
|
+
}), displayFraction && /*#__PURE__*/_react["default"].createElement("line", {
|
|
151
|
+
className: classes.line,
|
|
152
|
+
x1: textX,
|
|
153
|
+
x2: textX + textWidth,
|
|
154
|
+
y1: textY + textHeight / 2,
|
|
155
|
+
y2: textY + textHeight / 2
|
|
119
156
|
}), labelTick && /*#__PURE__*/_react["default"].createElement("text", {
|
|
120
157
|
ref: function ref(text) {
|
|
121
|
-
return
|
|
158
|
+
return _this2.text = text;
|
|
122
159
|
},
|
|
123
160
|
className: classes.text,
|
|
124
161
|
y: "14",
|
|
125
162
|
width: "10",
|
|
126
|
-
dy: "0.71em"
|
|
163
|
+
dy: "0.71em",
|
|
164
|
+
textAnchor: displayFraction && 'middle'
|
|
127
165
|
}, xText));
|
|
128
166
|
}
|
|
129
167
|
}]);
|
|
@@ -136,6 +174,7 @@ exports.Tick = Tick;
|
|
|
136
174
|
y: _propTypes["default"].number.isRequired,
|
|
137
175
|
x: _propTypes["default"].number.isRequired,
|
|
138
176
|
major: _propTypes["default"].bool,
|
|
177
|
+
fraction: _propTypes["default"].bool,
|
|
139
178
|
xScale: _propTypes["default"].func,
|
|
140
179
|
type: _propTypes["default"].string
|
|
141
180
|
});
|
|
@@ -160,14 +199,18 @@ var Ticks = /*#__PURE__*/function (_React$Component2) {
|
|
|
160
199
|
domain = _this$props2.domain,
|
|
161
200
|
ticks = _this$props2.ticks,
|
|
162
201
|
y = _this$props2.y,
|
|
163
|
-
classes = _this$props2.classes
|
|
202
|
+
classes = _this$props2.classes,
|
|
203
|
+
fraction = _this$props2.fraction;
|
|
164
204
|
var xScale = this.context.xScale;
|
|
165
|
-
var tickData = (0, _tickUtils.buildTickData)(domain, ticks
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
205
|
+
var tickData = (0, _tickUtils.buildTickData)(domain, ticks, {
|
|
206
|
+
fraction: fraction
|
|
207
|
+
});
|
|
208
|
+
return /*#__PURE__*/_react["default"].createElement("g", null, tickData.map(function (_ref2) {
|
|
209
|
+
var x = _ref2.x,
|
|
210
|
+
type = _ref2.type;
|
|
169
211
|
return /*#__PURE__*/_react["default"].createElement(Tick, {
|
|
170
212
|
classes: classes,
|
|
213
|
+
fraction: fraction,
|
|
171
214
|
x: x,
|
|
172
215
|
y: y,
|
|
173
216
|
type: type,
|
|
@@ -190,6 +233,7 @@ exports.Ticks = Ticks;
|
|
|
190
233
|
min: _propTypes["default"].number.isRequired,
|
|
191
234
|
max: _propTypes["default"].number.isRequired
|
|
192
235
|
}).isRequired,
|
|
236
|
+
fraction: _propTypes["default"].bool,
|
|
193
237
|
ticks: TickValidator,
|
|
194
238
|
y: _propTypes["default"].number.isRequired
|
|
195
239
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/number-line/graph/ticks.jsx"],"names":["style","text","userSelect","textAlign","fill","color","primary","line","stroke","TickValidator","PropTypes","shape","major","props","propName","minor","Error","componentName","isRequired","Tick","getBBox","width","setAttribute","x","y","type","classes","xScale","
|
|
1
|
+
{"version":3,"sources":["../../../src/number-line/graph/ticks.jsx"],"names":["style","text","userSelect","textAlign","fill","color","primary","line","stroke","TickValidator","PropTypes","shape","major","props","propName","minor","Error","componentName","isRequired","Tick","wasRendered","fraction","getBBox","width","setAttribute","forceUpdate","x","y","type","classes","xScale","displayFraction","n","d","labelTick","height","textWidth","textHeight","textX","textY","xText","Number","toFixed","s","React","Component","object","number","bool","func","string","Ticks","domain","ticks","context","tickData","map","min","max"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { buildTickData, isMultiple } from './tick-utils';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/render-ui';\n\nconst style = {\n text: {\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary()\n },\n line: {\n stroke: color.primary()\n }\n};\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {\n let major = props[propName];\n let minor = props.minor;\n\n if (!isMultiple(major, minor)) {\n return new Error(`Invalid prop major. It must be a multiple of ${minor}`);\n }\n },\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(\n `Invalid prop ${propName} must be > 0. ${componentName}`\n );\n }\n }\n}).isRequired;\n\nexport class Tick extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n y: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n major: PropTypes.bool,\n fraction: PropTypes.bool,\n xScale: PropTypes.func,\n type: PropTypes.string\n };\n\n static defaultProps = {\n major: false\n };\n\n constructor(props) {\n super(props);\n this.wasRendered = false;\n }\n\n componentDidMount() {\n //center align the tick text\n if (this.text) {\n const { fraction } = this.props;\n let { width } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n\n if (fraction && !this.wasRendered) {\n // used for rendering the line fraction\n this.wasRendered = true;\n this.forceUpdate();\n }\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, classes, xScale, fraction } = this.props;\n const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;\n const labelTick = type === 'major';\n const height = labelTick ? 20 : 10;\n const {\n width: textWidth = 0,\n height: textHeight = 0,\n x: textX = 0,\n y: textY = 0\n } = this.text && this.text.getBBox() || {};\n\n const xText = !fraction ? Number(x.toFixed(2))\n : !displayFraction ? x.n * x.s\n : <><tspan x=\"0\" dy=\"0.71em\">{x.n * x.s}</tspan><tspan x=\"0\" dy=\"1.11em\">{x.d}</tspan></>;\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <line\n className={classes.line}\n y1={(height / 2) * -1}\n y2={height / 2}\n x1=\"0.5\"\n x2=\"0.5\"\n />\n\n {displayFraction &&\n <line\n className={classes.line}\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n }\n\n {labelTick && (\n <text\n ref={text => (this.text = text)}\n className={classes.text}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </text>\n )}\n </g>\n );\n }\n}\n\nexport class Ticks extends React.Component {\n static contextTypes = {\n xScale: PropTypes.func.isRequired\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired\n }).isRequired,\n fraction: PropTypes.bool,\n ticks: TickValidator,\n y: PropTypes.number.isRequired\n };\n\n render() {\n let { domain, ticks, y, classes, fraction } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, ticks, { fraction });\n\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick\n classes={classes}\n fraction={fraction}\n x={x}\n y={y}\n type={type}\n xScale={xScale}\n key={`${x}-${type}`}\n />\n );\n })}\n </g>\n );\n }\n}\n\nexport default injectSheet(style)(Ticks);\n"],"file":"ticks.js"}
|
package/lib/number-line/index.js
CHANGED
|
@@ -57,7 +57,7 @@ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
|
57
57
|
|
|
58
58
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
59
59
|
|
|
60
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
60
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
61
61
|
|
|
62
62
|
var styles = {
|
|
63
63
|
mainContainer: {
|
|
@@ -160,7 +160,7 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
|
|
|
160
160
|
if (elementData) {
|
|
161
161
|
var answers = this.state.answers;
|
|
162
162
|
var contains = answers.some(function (element) {
|
|
163
|
-
return
|
|
163
|
+
return (0, _isEqual["default"])(element, elementData);
|
|
164
164
|
});
|
|
165
165
|
|
|
166
166
|
if (!contains) {
|
|
@@ -266,7 +266,8 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
|
|
|
266
266
|
maxNumberOfPoints = graph.maxNumberOfPoints,
|
|
267
267
|
height = graph.height,
|
|
268
268
|
availableTypes = graph.availableTypes,
|
|
269
|
-
title = graph.title
|
|
269
|
+
title = graph.title,
|
|
270
|
+
fraction = graph.fraction;
|
|
270
271
|
var width = this.getSize('width', 400, 1600, 600);
|
|
271
272
|
var graphProps = {
|
|
272
273
|
disabled: disabled,
|
|
@@ -274,7 +275,8 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
|
|
|
274
275
|
ticks: ticks,
|
|
275
276
|
width: width,
|
|
276
277
|
height: height || 100,
|
|
277
|
-
arrows: arrows
|
|
278
|
+
arrows: arrows,
|
|
279
|
+
fraction: fraction
|
|
278
280
|
};
|
|
279
281
|
|
|
280
282
|
var getAnswerElements = function getAnswerElements() {
|
|
@@ -337,11 +339,10 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
|
|
|
337
339
|
width: width
|
|
338
340
|
}
|
|
339
341
|
}, prompt && /*#__PURE__*/_react["default"].createElement("div", {
|
|
340
|
-
className: classes.prompt
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
}), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
342
|
+
className: classes.prompt
|
|
343
|
+
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
344
|
+
prompt: prompt
|
|
345
|
+
})), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
345
346
|
style: {
|
|
346
347
|
width: adjustedWidth
|
|
347
348
|
}
|
|
@@ -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","JSON","stringify","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 JSON.stringify(element) === JSON.stringify(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","fraction","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAIA,IAAMA,MAAM,GAAG;AACbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,KAAK,EAAEA,gBAAMC,IAAN,EADM;AAEbC,IAAAA,eAAe,EAAEF,gBAAMG,UAAN;AAFJ,GADF;AAKbC,EAAAA,UAAU,EAAE;AACVC,IAAAA,SAAS,EAAE,QADD;AAEVC,IAAAA,aAAa,EAAE,MAFL;AAGVC,IAAAA,UAAU,EAAE;AAHF,GALC;AAUbC,EAAAA,UAAU,EAAE;AACVC,IAAAA,OAAO,EAAE,MADC;AAEVC,IAAAA,SAAS,EAAE;AAFD,GAVC;AAcbC,EAAAA,aAAa,EAAE;AACbT,IAAAA,eAAe,EAAE;AADJ,GAdF;AAiBbU,EAAAA,cAAc,EAAE;AACdV,IAAAA,eAAe,EAAE,OADH;AAEd,2CAAuC,OAFzB;AAGd,oBAAgB,OAHF;AAId,qBAAiB,OAJH;AAKd,qBAAiB,OALH;AAMd,sBAAkB,OANJ;AAOd,oBAAgB;AAPF,GAjBH;AA0BbW,EAAAA,MAAM,EAAE;AACNC,IAAAA,aAAa,EAAE,QADT;AAENC,IAAAA,YAAY,EAAE;AAFR;AA1BK,CAAf;;IAgCaC,U;;;;;AAYX,sBAAYC,KAAZ,EAAmBC,OAAnB,EAA4B;AAAA;;AAAA;AAC1B,8BAAMD,KAAN,EAAaC,OAAb;AAEA,QAAIC,WAAW,GAAGF,KAAK,CAACG,KAAN,CAAYC,KAAZ,GAAoBJ,KAAK,CAACG,KAAN,CAAYC,KAAZ,CAAkBF,WAAtC,GAAoD,IAAtE;AACAA,IAAAA,WAAW,GAAGA,WAAW,GACrBA,WAAW,CAACG,WAAZ,EADqB,GAErBC,yBAAaC,YAFjB;AAIA,UAAKC,KAAL,GAAa;AACXC,MAAAA,gBAAgB,EAAE,EADP;AAEXC,MAAAA,WAAW,EAAER,WAFF;AAGXS,MAAAA,OAAO,EAAEX,KAAK,CAACY;AAHJ,KAAb;AAR0B;AAa3B;;;;WAED,uBAAcC,KAAd,EAAqB;AACnB,UAAIC,QAAQ,GAAG,EAAf;;AACA,UAAI,KAAKN,KAAL,CAAWC,gBAAX,CAA4BM,OAA5B,CAAoCF,KAApC,MAA+C,CAAC,CAApD,EAAuD;AACrDC,QAAAA,QAAQ,GAAG,KAAKN,KAAL,CAAWC,gBAAX,CAA4BO,MAA5B,CAAmC,CAACH,KAAD,CAAnC,CAAX;AACD,OAFD,MAEO;AACLC,QAAAA,QAAQ,GAAG,KAAKN,KAAL,CAAWC,gBAAX,CAA4BQ,MAA5B,CAAmC,UAACC,CAAD;AAAA,iBAAOA,CAAC,KAAKL,KAAb;AAAA,SAAnC,CAAX;AACD;;AACD,WAAKM,QAAL,CAAc;AAAEV,QAAAA,gBAAgB,EAAEK;AAApB,OAAd;AACD;;;WAED,6BAAoBM,CAApB,EAAuB;AACrB,WAAKD,QAAL,CAAc;AAAET,QAAAA,WAAW,EAAEU;AAAf,OAAd;AACD;;;WAED,oBAAWC,CAAX,EAAc;AAAA;;AACZ,UAAI,KAAKC,gBAAL,EAAJ,EAA6B;AAC3B,aAAKH,QAAL,CAAc;AAAEI,UAAAA,oBAAoB,EAAE;AAAxB,SAAd;AACAC,QAAAA,UAAU,CAAC,YAAM;AACf,UAAA,MAAI,CAACL,QAAL,CAAc;AAAEI,YAAAA,oBAAoB,EAAE;AAAxB,WAAd;AACD,SAFS,EAEP,IAFO,CAAV;AAGA;AACD;;AAED,kCAA0B,KAAKvB,KAAL,CAAWG,KAAX,CAAiBC,KAA3C;AAAA,UAAQqB,KAAR,yBAAQA,KAAR;AAAA,UAAeC,MAAf,yBAAeA,MAAf;AAEA,UAAIC,WAAW,GAAG,gCAChBN,CADgB,EAEhB,KAAKb,KAAL,CAAWE,WAFK,EAGhBgB,MAHgB,EAIhBD,KAAK,CAACG,KAJU,CAAlB;;AAOA,UAAID,WAAJ,EAAiB;AACf,YAAQhB,OAAR,GAAoB,KAAKH,KAAzB,CAAQG,OAAR;AAEA,YAAMkB,QAAQ,GAAGlB,OAAO,CAACmB,IAAR,CAAa,UAACC,OAAD,EAAa;AACzC,iBAAO,yBAAQA,OAAR,EAAiBJ,WAAjB,CAAP;AACD,SAFgB,CAAjB;;AAIA,YAAI,CAACE,QAAL,EAAe;AACblB,UAAAA,OAAO,CAACqB,IAAR,CAAaL,WAAb;AACA,eAAKR,QAAL,CAAc;AAAER,YAAAA,OAAO,EAAPA;AAAF,WAAd;AACA,eAAKX,KAAL,CAAWiC,YAAX,CAAwBN,WAAxB;AACD;AACF;AACF;;;WAED,4BAAmB;AACjB,wBAKI,KAAK3B,KALT;AAAA,UACEY,MADF,eACEA,MADF;AAAA,UAGasB,iBAHb,eAEE/B,KAFF,CAGIC,KAHJ,CAGa8B,iBAHb;AAOA,aACE,0BAASA,iBAAT,KACAA,iBAAiB,GAAG,CADpB,IAEA,CAACtB,MAAM,IAAI,EAAX,EAAeuB,MAAf,IAAyBD,iBAH3B;AAKD;;;WAED,0CAAiCE,SAAjC,EAA4C;AAC1C,UAAQxB,MAAR,GAAmBwB,SAAnB,CAAQxB,MAAR;;AAEA,UAAI,CAAC,yBAAQ,KAAKJ,KAAL,CAAWG,OAAnB,EAA4BC,MAA5B,CAAL,EAA0C;AACxC,aAAKO,QAAL,CAAc;AAAEkB,UAAAA,iBAAiB,EAAE,KAArB;AAA4B1B,UAAAA,OAAO,EAAEC;AAArC,SAAd;AACD;AACF;;;WAED,4BAAmB;AACjB,WAAKO,QAAL,CAAc;AAAEV,QAAAA,gBAAgB,EAAE;AAApB,OAAd;AACD;;;WAED,iBAAQ6B,IAAR,EAAcC,GAAd,EAAmBC,GAAnB,EAAwBC,YAAxB,EAAsC;AACpC,UACWrC,KADX,GAEI,KAAKJ,KAFT,CACEG,KADF,CACWC,KADX;;AAIA,UAAIA,KAAK,IAAIA,KAAK,CAACkC,IAAD,CAAlB,EAA0B;AACxB,eAAOI,IAAI,CAACF,GAAL,CAASD,GAAT,EAAcG,IAAI,CAACH,GAAL,CAASC,GAAT,EAAcpC,KAAK,CAACkC,IAAD,CAAnB,CAAd,CAAP;AACD,OAFD,MAEO;AACL,eAAOG,YAAP;AACD;AACF;;;WAED,gBAAO;AACL,UAAQ9B,OAAR,GAAoB,KAAKH,KAAzB,CAAQG,OAAR;AACA,UAAQgC,aAAR,GAA0B,KAAK3C,KAA/B,CAAQ2C,aAAR;AAEAhC,MAAAA,OAAO,CAACiC,GAAR;AACA,WAAKzB,QAAL,CAAc;AAAER,QAAAA,OAAO,EAAPA;AAAF,OAAd;AACAgC,MAAAA,aAAa;AACd;;;WAED,oBAAW;AACT,UAAQE,eAAR,GAA4B,KAAK7C,KAAjC,CAAQ6C,eAAR;AAEA,WAAK1B,QAAL,CAAc;AAAER,QAAAA,OAAO,EAAE;AAAX,OAAd;AACAkC,MAAAA,eAAe;AAChB;;;WAED,kBAAS;AAAA;;AACP,yBAA0D,KAAK7C,KAA/D;AAAA,UAAMG,KAAN,gBAAMA,KAAN;AAAA,UAAa2C,OAAb,gBAAaA,OAAb;AAAA,UAAsBC,gBAAtB,gBAAsBA,gBAAtB;AAAA,UAAwCC,aAAxC,gBAAwCA,aAAxC;AACA,wBAMI,KAAKxC,KANT;AAAA,UACE6B,iBADF,eACEA,iBADF;AAAA,UAEE1B,OAFF,eAEEA,OAFF;AAAA,UAGEF,gBAHF,eAGEA,gBAHF;AAAA,UAIEc,oBAJF,eAIEA,oBAJF;AAAA,UAKEb,WALF,eAKEA,WALF;AAOA,6BASIP,KATJ,CACE8C,SADF;AAAA,UACEA,SADF,iCACc;AAAEC,QAAAA,OAAO,EAAE,EAAX;AAAeC,QAAAA,SAAS,EAAE;AAA1B,OADd;AAAA,UAEEC,QAFF,GASIjD,KATJ,CAEEiD,QAFF;AAAA,UAGEhD,KAHF,GASID,KATJ,CAGEC,KAHF;AAAA,UAIEiD,eAJF,GASIlD,KATJ,CAIEkD,eAJF;AAAA,UAKEzD,MALF,GASIO,KATJ,CAKEP,MALF;AAAA,UAME0D,WANF,GASInD,KATJ,CAMEmD,WANF;AAAA,UAOEC,QAPF,GASIpD,KATJ,CAOEoD,QAPF;AAAA,UAQEC,aARF,GASIrD,KATJ,CAQEqD,aARF;AAUA,UAAIC,UAAU,GAAG,KAAKA,UAAL,CAAgBC,IAAhB,CAAqB,IAArB,CAAjB;AACA,UAAIC,gBAAgB,GAClB,CAACP,QAAD,IAAa3C,gBAAb,IAAiCA,gBAAgB,CAAC0B,MAAjB,GAA0B,CAD7D;AAEA,UACEV,KADF,GASIrB,KATJ,CACEqB,KADF;AAAA,UAEEC,MAFF,GASItB,KATJ,CAEEsB,MAFF;AAAA,UAGEkC,MAHF,GASIxD,KATJ,CAGEwD,MAHF;AAAA,UAIE1B,iBAJF,GASI9B,KATJ,CAIE8B,iBAJF;AAAA,UAKE2B,MALF,GASIzD,KATJ,CAKEyD,MALF;AAAA,UAMEC,cANF,GASI1D,KATJ,CAME0D,cANF;AAAA,UAOEC,KAPF,GASI3D,KATJ,CAOE2D,KAPF;AAAA,UAQEC,QARF,GASI5D,KATJ,CAQE4D,QARF;AAUA,UAAMC,KAAK,GAAG,KAAKC,OAAL,CAAa,OAAb,EAAsB,GAAtB,EAA2B,IAA3B,EAAiC,GAAjC,CAAd;AACA,UAAMC,UAAU,GAAG;AACjBf,QAAAA,QAAQ,EAARA,QADiB;AAEjB1B,QAAAA,MAAM,EAANA,MAFiB;AAGjBD,QAAAA,KAAK,EAALA,KAHiB;AAIjBwC,QAAAA,KAAK,EAALA,KAJiB;AAKjBJ,QAAAA,MAAM,EAAEA,MAAM,IAAI,GALD;AAMjBD,QAAAA,MAAM,EAANA,MANiB;AAOjBI,QAAAA,QAAQ,EAARA;AAPiB,OAAnB;;AAUA,UAAII,iBAAiB,GAAG,SAApBA,iBAAoB,GAAM;AAC5B,eAAO,CAACzD,OAAO,IAAI,EAAZ,EAAgB0D,GAAhB,CAAoB,UAACnD,CAAD,EAAIL,KAAJ,EAAc;AACvC,cAAIyD,GAAG,GAAG,2BAAUpD,CAAV,CAAV;AACAoD,UAAAA,GAAG,CAACxD,QAAJ,GAAeL,gBAAgB,CAACM,OAAjB,CAAyBF,KAAzB,MAAoC,CAAC,CAApD;AACAyD,UAAAA,GAAG,CAACpB,OAAJ,GAAcD,SAAS,CAACC,OAAV,CAAkBqB,QAAlB,CAA2B1D,KAA3B,IACV,IADU,GAEVoC,SAAS,CAACE,SAAV,CAAoBoB,QAApB,CAA6B1D,KAA7B,IACA,KADA,GAEA2D,SAJJ;AAKA,iBAAOF,GAAP;AACD,SATM,CAAP;AAUD,OAXD;;AAaA,UAAIG,wBAAwB,GAAG,SAA3BA,wBAA2B,GAAM;AACnC,eAAO,CAACpB,eAAe,IAAI,EAApB,EAAwBgB,GAAxB,CAA4B,UAACK,CAAD,EAAO;AACxCA,UAAAA,CAAC,CAACxB,OAAF,GAAY,IAAZ;AACA,iBAAOwB,CAAP;AACD,SAHM,CAAP;AAID,OALD;;AAOA,UAAIC,QAAQ,GAAGtC,iBAAiB,GAC5BoC,wBAAwB,EADI,GAE5BL,iBAAiB,EAFrB;;AAIA,UAAIQ,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,0CACD1C,iBADC,qBAEnBA,iBAAiB,IAAI,CAArB,GAAyB,EAAzB,GAA8B,GAFX;AAAA,OAAvB;;AAKA,UAAI2C,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AACzB9B,QAAAA,gBAAgB,CAACtC,gBAAD,CAAhB;AAEAE,QAAAA,OAAO,GAAGA,OAAO,CAACM,MAAR,CAAe,UAAC6D,CAAD,EAAIjE,KAAJ,EAAc;AACrC,iBAAO,CAACJ,gBAAgB,CAACqB,IAAjB,CAAsB,UAACiD,CAAD;AAAA,mBAAOA,CAAC,KAAKlE,KAAb;AAAA,WAAtB,CAAR;AACD,SAFS,CAAV;;AAIA,QAAA,MAAI,CAACM,QAAL,CAAc;AAAEV,UAAAA,gBAAgB,EAAE,EAApB;AAAwBE,UAAAA,OAAO,EAAPA;AAAxB,SAAd;AACD,OARD;;AAUA,UAAIqE,QAAQ,GAAG,SAAXA,QAAW,GAAM;AACnB,YAAIlB,cAAJ,EAAoB;AAClB,iBAAOmB,MAAM,CAACC,IAAP,CAAYpB,cAAZ,EACJ7C,MADI,CACG,UAACkE,CAAD;AAAA,mBAAOrB,cAAc,CAACqB,CAAD,CAArB;AAAA,WADH,EAEJd,GAFI,CAEA,UAACc,CAAD;AAAA,mBAAOA,CAAC,CAAC9E,WAAF,EAAP;AAAA,WAFA,CAAP;AAGD;AACF,OAND;;AAQA,UAAI+E,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,IAAD,EAAU;AAClC,QAAA,MAAI,CAAClE,QAAL,CAAc;AAAEkB,UAAAA,iBAAiB,EAAEgD;AAArB,SAAd;AACD,OAFD;;AAIA,UAAIC,aAAa,GAAGnB,UAAU,CAACF,KAAX,GAAmB,EAAvC;AAEA,UAAMsB,KAAK,GAAG,4BACZzC,OAAO,CAACvD,UADI,EAEZuD,OAAO,CAAChE,aAFI,EAGZgE,OAAO,CAACU,aAAD,CAHK,CAAd;AAMA,0BACE;AAAK,QAAA,SAAS,EAAE+B,KAAhB;AAAuB,QAAA,KAAK,EAAE;AAAEtB,UAAAA,KAAK,EAALA;AAAF;AAA9B,SACGrE,MAAM,iBACL;AAAK,QAAA,SAAS,EAAEkD,OAAO,CAAClD;AAAxB,sBACE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEA;AAAvB,QADF,CAFJ,eAME,0DACE;AAAK,QAAA,KAAK,EAAE;AAAEqE,UAAAA,KAAK,EAAEqB;AAAT;AAAZ,sBACE,gCAAC,+BAAD;AACE,QAAA,IAAI,EACF,yBAAQjC,eAAR,KACAA,eAAe,CAAClB,MADhB,IAEA,CAACmB,WAJL;AAME,QAAA,OAAO,EAAEjB,iBANX;AAOE,QAAA,QAAQ,EAAE+C,mBAPZ;AAQE,QAAA,YAAY,EAAE;AARhB,QADF,CADF,EAaG,CAAChC,QAAD,iBACC,gCAAC,wBAAD;AACE,QAAA,WAAW,EAAE1C,WADf;AAEE,QAAA,gBAAgB,EAAEiD,gBAFpB;AAGE,QAAA,aAAa,EAAEkB,cAHjB;AAIE,QAAA,aAAa,EAAE,KAAKW,mBAAL,CAAyB9B,IAAzB,CAA8B,IAA9B,CAJjB;AAKE,QAAA,eAAe,EAAE,KAAK+B,QAAL,CAAc/B,IAAd,CAAmB,IAAnB,CALnB;AAME,QAAA,aAAa,EAAE,KAAKgC,IAAL,CAAUhC,IAAV,CAAe,IAAf,CANjB;AAOE,QAAA,KAAK,EAAEsB,QAAQ;AAPjB,QAdJ,eAwBE,gCAAC,iBAAD,gCACMb,UADN;AAEE,QAAA,QAAQ,EAAEQ,QAFZ;AAGE,QAAA,YAAY,EAAElB,UAHhB;AAIE,QAAA,aAAa,EAAET,aAJjB;AAKE,QAAA,eAAe,EAAE,KAAK2C,aAAL,CAAmBjC,IAAnB,CAAwB,IAAxB,CALnB;AAME,QAAA,kBAAkB,EAAE,KAAKkC,gBAAL,CAAsBlC,IAAtB,CAA2B,IAA3B,CANtB;AAOE,QAAA,KAAK,EAAE;AAPT,SAxBF,EAiCGK,KAAK,iBACJ;AACE,QAAA,SAAS,EAAEjB,OAAO,CAAC3D,UADrB;AAEE,QAAA,uBAAuB,EAAE;AAAE0G,UAAAA,MAAM,EAAE9B;AAAV;AAF3B,QAlCJ,EAuCGxC,oBAAoB,iBACnB,gCAAC,oBAAD;AACE,QAAA,IAAI,EAAC,MADP;AAEE,QAAA,KAAK,EAAE+D,aAFT;AAGE,QAAA,OAAO,EAAEV,gBAAgB;AAH3B,QAxCJ,EA8CGrB,QAAQ,IAAI,CAAClB,iBAAb,iBACC,gCAAC,oBAAD,gCAAckB,QAAd;AAAwB,QAAA,KAAK,EAAE+B;AAA/B,SA/CJ,CANF,CADF;AA2DD;;;EAlS6BQ,kBAAMC,S;;;iCAAzBhG,U,eACQ;AACjBiD,EAAAA,aAAa,EAAEgD,sBAAUC,IAAV,CAAeC,UADb;AAEjBnD,EAAAA,gBAAgB,EAAEiD,sBAAUC,IAAV,CAAeC,UAFhB;AAGjBjE,EAAAA,YAAY,EAAE+D,sBAAUC,IAAV,CAAeC,UAHZ;AAIjBvD,EAAAA,aAAa,EAAEqD,sBAAUC,IAAV,CAAeC,UAJb;AAKjBrD,EAAAA,eAAe,EAAEmD,sBAAUC,IAAV,CAAeC,UALf;AAMjB/F,EAAAA,KAAK,EAAE6F,sBAAUG,MAAV,CAAiBD,UANP;AAOjBtF,EAAAA,MAAM,EAAEoF,sBAAUI,KAPD;AAQjBtD,EAAAA,OAAO,EAAEkD,sBAAUG,MAAV,CAAiBD;AART,C;;eAoSN,0BAAYrH,MAAZ,EAAoBkB,UAApB,C","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 fraction\n } = graph;\n const width = this.getSize('width', 400, 1600, 600);\n const graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: height || 100,\n arrows,\n fraction\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"}
|
|
@@ -33,7 +33,7 @@ var _button = _interopRequireDefault(require("./button"));
|
|
|
33
33
|
|
|
34
34
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
35
35
|
|
|
36
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
36
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
37
37
|
|
|
38
38
|
var DeleteIcon = function DeleteIcon(_ref) {
|
|
39
39
|
var classes = _ref.classes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/number-line/point-chooser/index.jsx"],"names":["DeleteIcon","classes","deleteIcon","propTypes","PropTypes","object","RawPoint","props","iconKey","active","onClick","names","string","isRequired","bool","func","Point","styles","Points","selectPoint","selected","icons","iconTags","map","key","bind","toLowerCase","elementSelector","array","PointChooser","elementType","showDeleteButton","onDeleteClick","onUndoElement","onClearElements","onElementType","pointChooser","controls","deleteIconHolder","React","Component","DEFAULT_TYPE"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,OAAiB;AAAA,MAAdC,OAAc,QAAdA,OAAc;AAClC,sBACE;AACE,IAAA,SAAS,EAAEA,OAAO,CAACC,UADrB;AAEE,IAAA,IAAI,EAAC,SAFP;AAGE,IAAA,MAAM,EAAC,IAHT;AAIE,IAAA,OAAO,EAAC,WAJV;AAKE,IAAA,KAAK,EAAC,IALR;AAME,IAAA,KAAK,EAAC;AANR,kBAQE;AAAM,IAAA,CAAC,EAAC;AAAR,IARF,eASE;AAAM,IAAA,CAAC,EAAC,eAAR;AAAwB,IAAA,IAAI,EAAC;AAA7B,IATF,CADF;AAaD,CAdD;;AAgBAF,UAAU,CAACG,SAAX,GAAuB;AACrBF,EAAAA,OAAO,EAAEG,sBAAUC;AADE,CAAvB;;AAIA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAAAC,KAAK,EAAI;
|
|
1
|
+
{"version":3,"sources":["../../../src/number-line/point-chooser/index.jsx"],"names":["DeleteIcon","classes","deleteIcon","propTypes","PropTypes","object","RawPoint","props","iconKey","active","onClick","names","string","isRequired","bool","func","Point","styles","Points","selectPoint","selected","icons","iconTags","map","key","bind","toLowerCase","elementSelector","array","PointChooser","elementType","showDeleteButton","onDeleteClick","onUndoElement","onClearElements","onElementType","pointChooser","controls","deleteIconHolder","React","Component","DEFAULT_TYPE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport styles from './styles';\nimport PropTypes from 'prop-types';\nimport Button from './button';\n\nconst DeleteIcon = ({ classes }) => {\n return (\n <svg\n className={classes.deleteIcon}\n fill=\"#000000\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nDeleteIcon.propTypes = {\n classes: PropTypes.object\n};\n\nconst RawPoint = props => {\n const { iconKey, active, classes, onClick } = props;\n const names = classNames(classes[iconKey], { active });\n return (\n <span role=\"presentation\" key={iconKey} onClick={onClick}>\n <a className={names}> </a>\n </span>\n );\n};\n\nRawPoint.propTypes = {\n iconKey: PropTypes.string.isRequired,\n active: PropTypes.bool,\n classes: PropTypes.object,\n onClick: PropTypes.func\n};\n\nexport const Point = injectSheet(styles)(RawPoint);\n\nconst Points = ({ selectPoint, classes, selected, icons }) => {\n const iconTags = icons.map(key => {\n let active = key === selected;\n let onClick = active ? () => {} : selectPoint.bind(null, key);\n return (\n <Point\n key={key.toLowerCase()}\n iconKey={key.toLowerCase()}\n active={active}\n onClick={onClick}\n />\n ); //icon(key, active);\n });\n\n return <div className={classes.elementSelector}>{iconTags}</div>;\n};\n\nPoints.propTypes = {\n selectPoint: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n selected: PropTypes.string,\n icons: PropTypes.array\n};\n\nexport class PointChooser extends React.Component {\n static defaultProps = {\n showDeleteButton: false,\n elementType: PointChooser.DEFAULT_TYPE,\n icons: ['pf', 'lff', 'lef', 'lfe', 'lee', 'rfn', 'rfp', 'ren', 'rep']\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n elementType: PropTypes.string,\n showDeleteButton: PropTypes.bool,\n onDeleteClick: PropTypes.func.isRequired,\n onElementType: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n icons: PropTypes.array\n };\n\n render() {\n const {\n elementType,\n showDeleteButton,\n onDeleteClick,\n onUndoElement,\n onClearElements,\n icons,\n classes,\n onElementType\n } = this.props;\n\n return (\n <div className={classes.pointChooser}>\n <Points\n selected={elementType}\n classes={classes}\n selectPoint={onElementType}\n icons={icons}\n />\n <div className={classes.controls}>\n {showDeleteButton && (\n <span className={classes.deleteIconHolder} onClick={onDeleteClick}>\n <DeleteIcon classes={classes} />\n </span>\n )}\n <Button onClick={onUndoElement} label=\"Undo\" />\n <Button onClick={onClearElements} label=\"Clear all\" />\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(PointChooser);\n\nPointChooser.DEFAULT_TYPE = 'pf';\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/number-line/transitions/fade.jsx"],"names":["duration","fade","appear","opacity","appearActive","transition","enter","enterActive","exit","exitActive","FadeTransition","props","classes","propTypes","PropTypes","object","isRequired","Fade"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,QAAQ,GAAG,GAAjB;AACA,IAAMC,IAAI,GAAG;AACXC,EAAAA,MAAM,EAAE;AACNC,IAAAA,OAAO,EAAE;AADH,GADG;AAIXC,EAAAA,YAAY,EAAE;AACZD,IAAAA,OAAO,EAAE,CADG;AAEZE,IAAAA,UAAU,oBAAaL,QAAb;AAFE,GAJH;AAQXM,EAAAA,KAAK,EAAE;AACLH,IAAAA,OAAO,EAAE;AADJ,GARI;AAWXI,EAAAA,WAAW,EAAE;AACXJ,IAAAA,OAAO,EAAE,CADE;AAEXE,IAAAA,UAAU,oBAAaL,QAAb;AAFC,GAXF;AAeXQ,EAAAA,IAAI,EAAE;AACJL,IAAAA,OAAO,EAAE;AADL,GAfK;AAkBXM,EAAAA,UAAU,EAAE;AACVN,IAAAA,OAAO,EAAE,CADC;AAEVE,IAAAA,UAAU,oBAAaL,QAAb;AAFA;AAlBD,CAAb;;AAwBA,IAAMU,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,KAAK,EAAI;
|
|
1
|
+
{"version":3,"sources":["../../../src/number-line/transitions/fade.jsx"],"names":["duration","fade","appear","opacity","appearActive","transition","enter","enterActive","exit","exitActive","FadeTransition","props","classes","propTypes","PropTypes","object","isRequired","Fade"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,QAAQ,GAAG,GAAjB;AACA,IAAMC,IAAI,GAAG;AACXC,EAAAA,MAAM,EAAE;AACNC,IAAAA,OAAO,EAAE;AADH,GADG;AAIXC,EAAAA,YAAY,EAAE;AACZD,IAAAA,OAAO,EAAE,CADG;AAEZE,IAAAA,UAAU,oBAAaL,QAAb;AAFE,GAJH;AAQXM,EAAAA,KAAK,EAAE;AACLH,IAAAA,OAAO,EAAE;AADJ,GARI;AAWXI,EAAAA,WAAW,EAAE;AACXJ,IAAAA,OAAO,EAAE,CADE;AAEXE,IAAAA,UAAU,oBAAaL,QAAb;AAFC,GAXF;AAeXQ,EAAAA,IAAI,EAAE;AACJL,IAAAA,OAAO,EAAE;AADL,GAfK;AAkBXM,EAAAA,UAAU,EAAE;AACVN,IAAAA,OAAO,EAAE,CADC;AAEVE,IAAAA,UAAU,oBAAaL,QAAb;AAFA;AAlBD,CAAb;;AAwBA,IAAMU,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,KAAK,EAAI;AAC9B,MAAQC,OAAR,GAAoBD,KAApB,CAAQC,OAAR;AACA,sBACE,gCAAC,mCAAD,gCACMD,KADN;AAEE,IAAA,MAAM,EAAE,IAFV;AAGE,IAAA,UAAU,EAAE;AACVL,MAAAA,KAAK,EAAEM,OAAO,CAACN,KADL;AAEVC,MAAAA,WAAW,EAAEK,OAAO,CAACL,WAFX;AAGVC,MAAAA,IAAI,EAAEI,OAAO,CAACJ,IAHJ;AAIVC,MAAAA,UAAU,EAAEG,OAAO,CAACH,UAJV;AAKVP,MAAAA,MAAM,EAAEU,OAAO,CAACV,MALN;AAMVE,MAAAA,YAAY,EAAEQ,OAAO,CAACR;AANZ,KAHd;AAWE,IAAA,OAAO,EAAEJ;AAXX,KADF;AAeD,CAjBD;;AAmBAU,cAAc,CAACG,SAAf,GAA2B;AACzBD,EAAAA,OAAO,EAAEE,sBAAUC,MAAV,CAAiBC;AADD,CAA3B;AAIA,IAAMC,IAAI,GAAG,0BAAYhB,IAAZ,EAAkBS,cAAlB,CAAb;eAEeO,I","sourcesContent":["import injectSheet from 'react-jss';\nimport React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\n\nconst duration = 200;\nconst fade = {\n appear: {\n opacity: 0\n },\n appearActive: {\n opacity: 1,\n transition: `opacity ${duration}ms ease-in`\n },\n enter: {\n opacity: 0\n },\n enterActive: {\n opacity: 1,\n transition: `opacity ${duration}ms ease-in`\n },\n exit: {\n opacity: 1\n },\n exitActive: {\n opacity: 0,\n transition: `opacity ${duration}ms ease-in`\n }\n};\n\nconst FadeTransition = props => {\n const { classes } = props;\n return (\n <CSSTransition\n {...props}\n appear={true}\n classNames={{\n enter: classes.enter,\n enterActive: classes.enterActive,\n exit: classes.exit,\n exitActive: classes.exitActive,\n appear: classes.appear,\n appearActive: classes.appearActive\n }}\n timeout={duration}\n />\n );\n};\n\nFadeTransition.propTypes = {\n classes: PropTypes.object.isRequired\n};\n\nconst Fade = injectSheet(fade)(FadeTransition);\n\nexport default Fade;\n"],"file":"fade.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/number-line",
|
|
3
|
-
"version": "5.11.
|
|
3
|
+
"version": "5.11.3-next.1016+1dc291af4",
|
|
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.
|
|
11
|
+
"@pie-lib/correct-answer-toggle": "^2.3.39",
|
|
12
12
|
"@pie-lib/feedback": "^0.4.27",
|
|
13
13
|
"@pie-lib/icons": "^2.4.25",
|
|
14
|
-
"@pie-lib/math-rendering": "^2.3
|
|
15
|
-
"@pie-lib/render-ui": "^4.
|
|
14
|
+
"@pie-lib/math-rendering": "^2.4.3",
|
|
15
|
+
"@pie-lib/render-ui": "^4.12.9",
|
|
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": "
|
|
30
|
+
"gitHead": "1dc291af490cf91cc86a6a7c8d0eb0fdf184232b",
|
|
31
31
|
"scripts": {
|
|
32
32
|
"postpublish": "../../scripts/postpublish"
|
|
33
33
|
},
|