@pie-element/number-line 6.4.1 → 6.4.2-next.120

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.
@@ -64,7 +64,7 @@ var styles = function styles(theme) {
64
64
  padding: 0
65
65
  },
66
66
  tooltip: {
67
- fontSize: '12px'
67
+ fontSize: theme.typography.fontSize - 2
68
68
  },
69
69
  flexContainer: {
70
70
  display: 'flex',
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/card-bar.jsx"],"names":["CardBar","props","classes","header","children","mini","info","cardBar","flexContainer","tooltip","button","propTypes","PropTypes","object","bool","string","node","styles","theme","display","justifyContent","paddingBottom","spacing","unit","paddingTop","margin","padding","fontSize","alignItems"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD,EAAW;AACzB,MAAQC,OAAR,GAAkDD,KAAlD,CAAQC,OAAR;AAAA,MAAiBC,MAAjB,GAAkDF,KAAlD,CAAiBE,MAAjB;AAAA,MAAyBC,QAAzB,GAAkDH,KAAlD,CAAyBG,QAAzB;AAAA,MAAmCC,IAAnC,GAAkDJ,KAAlD,CAAmCI,IAAnC;AAAA,MAAyCC,IAAzC,GAAkDL,KAAlD,CAAyCK,IAAzC;AACA,sBACE;AAAK,IAAA,SAAS,EAAEJ,OAAO,CAACK;AAAxB,kBACE;AAAK,IAAA,SAAS,EAAEL,OAAO,CAACM;AAAxB,kBACE,gCAAC,sBAAD;AAAY,IAAA,OAAO,EAAEH,IAAI,GAAG,YAAH,GAAkB;AAA3C,KAAkDF,MAAlD,CADF,EAEGG,IAFH,CADF,EAKGF,QAAQ,iBACP,gCAAC,mBAAD;AAAS,IAAA,KAAK,EAAEA,QAAhB;AAA0B,IAAA,OAAO,EAAE;AAAEK,MAAAA,OAAO,EAAEP,OAAO,CAACO;AAAnB;AAAnC,kBACE,gCAAC,sBAAD;AAAY,kBAAW,QAAvB;AAAgC,IAAA,SAAS,EAAEP,OAAO,CAACQ;AAAnD,kBACE,gCAAC,uBAAD,OADF,CADF,CANJ,CADF;AAeD,CAjBD;;AAmBAV,OAAO,CAACW,SAAR,GAAoB;AAClBT,EAAAA,OAAO,EAAEU,sBAAUC,MADD;AAElBR,EAAAA,IAAI,EAAEO,sBAAUE,IAFE;AAGlBX,EAAAA,MAAM,EAAES,sBAAUG,MAHA;AAIlBX,EAAAA,QAAQ,EAAEQ,sBAAUI;AAJF,CAApB;;AAMA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBX,IAAAA,OAAO,EAAE;AACPY,MAAAA,OAAO,EAAE,MADF;AAEPC,MAAAA,cAAc,EAAE,eAFT;AAGPC,MAAAA,aAAa,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CAH7B;AAIPC,MAAAA,UAAU,EAAEN,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB;AAJ1B,KADgB;AAOzBb,IAAAA,MAAM,EAAE;AACNe,MAAAA,MAAM,EAAE,CADF;AAENC,MAAAA,OAAO,EAAE;AAFH,KAPiB;AAWzBjB,IAAAA,OAAO,EAAE;AACPkB,MAAAA,QAAQ,EAAE;AADH,KAXgB;AAczBnB,IAAAA,aAAa,EAAE;AACbW,MAAAA,OAAO,EAAE,MADI;AAEbS,MAAAA,UAAU,EAAE;AAFC;AAdU,GAAZ;AAAA,CAAf;;eAmBe,wBAAWX,MAAX,EAAmBjB,OAAnB,C","sourcesContent":["import { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport HelpIcon from '@material-ui/icons/HelpOutline';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Typography from '@material-ui/core/Typography';\n\nconst CardBar = (props) => {\n const { classes, header, children, mini, info } = props;\n return (\n <div className={classes.cardBar}>\n <div className={classes.flexContainer}>\n <Typography variant={mini ? 'subheading' : 'h5'}>{header}</Typography>\n {info}\n </div>\n {children && (\n <Tooltip title={children} classes={{ tooltip: classes.tooltip }}>\n <IconButton aria-label=\"Delete\" className={classes.button}>\n <HelpIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n\nCardBar.propTypes = {\n classes: PropTypes.object,\n mini: PropTypes.bool,\n header: PropTypes.string,\n children: PropTypes.node,\n};\nconst styles = (theme) => ({\n cardBar: {\n display: 'flex',\n justifyContent: 'space-between',\n paddingBottom: theme.spacing.unit * 2,\n paddingTop: theme.spacing.unit * 2,\n },\n button: {\n margin: 0,\n padding: 0,\n },\n tooltip: {\n fontSize: '12px',\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n});\nexport default withStyles(styles)(CardBar);\n"],"file":"card-bar.js"}
1
+ {"version":3,"sources":["../src/card-bar.jsx"],"names":["CardBar","props","classes","header","children","mini","info","cardBar","flexContainer","tooltip","button","propTypes","PropTypes","object","bool","string","node","styles","theme","display","justifyContent","paddingBottom","spacing","unit","paddingTop","margin","padding","fontSize","typography","alignItems"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD,EAAW;AACzB,MAAQC,OAAR,GAAkDD,KAAlD,CAAQC,OAAR;AAAA,MAAiBC,MAAjB,GAAkDF,KAAlD,CAAiBE,MAAjB;AAAA,MAAyBC,QAAzB,GAAkDH,KAAlD,CAAyBG,QAAzB;AAAA,MAAmCC,IAAnC,GAAkDJ,KAAlD,CAAmCI,IAAnC;AAAA,MAAyCC,IAAzC,GAAkDL,KAAlD,CAAyCK,IAAzC;AAEA,sBACE;AAAK,IAAA,SAAS,EAAEJ,OAAO,CAACK;AAAxB,kBACE;AAAK,IAAA,SAAS,EAAEL,OAAO,CAACM;AAAxB,kBACE,gCAAC,sBAAD;AAAY,IAAA,OAAO,EAAEH,IAAI,GAAG,YAAH,GAAkB;AAA3C,KAAkDF,MAAlD,CADF,EAEGG,IAFH,CADF,EAMGF,QAAQ,iBACP,gCAAC,mBAAD;AAAS,IAAA,KAAK,EAAEA,QAAhB;AAA0B,IAAA,OAAO,EAAE;AAAEK,MAAAA,OAAO,EAAEP,OAAO,CAACO;AAAnB;AAAnC,kBACE,gCAAC,sBAAD;AAAY,kBAAW,QAAvB;AAAgC,IAAA,SAAS,EAAEP,OAAO,CAACQ;AAAnD,kBACE,gCAAC,uBAAD,OADF,CADF,CAPJ,CADF;AAgBD,CAnBD;;AAqBAV,OAAO,CAACW,SAAR,GAAoB;AAClBT,EAAAA,OAAO,EAAEU,sBAAUC,MADD;AAElBR,EAAAA,IAAI,EAAEO,sBAAUE,IAFE;AAGlBX,EAAAA,MAAM,EAAES,sBAAUG,MAHA;AAIlBX,EAAAA,QAAQ,EAAEQ,sBAAUI;AAJF,CAApB;;AAOA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBX,IAAAA,OAAO,EAAE;AACPY,MAAAA,OAAO,EAAE,MADF;AAEPC,MAAAA,cAAc,EAAE,eAFT;AAGPC,MAAAA,aAAa,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CAH7B;AAIPC,MAAAA,UAAU,EAAEN,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB;AAJ1B,KADgB;AAOzBb,IAAAA,MAAM,EAAE;AACNe,MAAAA,MAAM,EAAE,CADF;AAENC,MAAAA,OAAO,EAAE;AAFH,KAPiB;AAWzBjB,IAAAA,OAAO,EAAE;AACPkB,MAAAA,QAAQ,EAAET,KAAK,CAACU,UAAN,CAAiBD,QAAjB,GAA4B;AAD/B,KAXgB;AAczBnB,IAAAA,aAAa,EAAE;AACbW,MAAAA,OAAO,EAAE,MADI;AAEbU,MAAAA,UAAU,EAAE;AAFC;AAdU,GAAZ;AAAA,CAAf;;eAoBe,wBAAWZ,MAAX,EAAmBjB,OAAnB,C","sourcesContent":["import { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport HelpIcon from '@material-ui/icons/HelpOutline';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Typography from '@material-ui/core/Typography';\n\nconst CardBar = (props) => {\n const { classes, header, children, mini, info } = props;\n\n return (\n <div className={classes.cardBar}>\n <div className={classes.flexContainer}>\n <Typography variant={mini ? 'subheading' : 'h5'}>{header}</Typography>\n {info}\n </div>\n\n {children && (\n <Tooltip title={children} classes={{ tooltip: classes.tooltip }}>\n <IconButton aria-label=\"Delete\" className={classes.button}>\n <HelpIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n\nCardBar.propTypes = {\n classes: PropTypes.object,\n mini: PropTypes.bool,\n header: PropTypes.string,\n children: PropTypes.node,\n};\n\nconst styles = (theme) => ({\n cardBar: {\n display: 'flex',\n justifyContent: 'space-between',\n paddingBottom: theme.spacing.unit * 2,\n paddingTop: theme.spacing.unit * 2,\n },\n button: {\n margin: 0,\n padding: 0,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n});\n\nexport default withStyles(styles)(CardBar);\n"],"file":"card-bar.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["updateTicks","model","graph","domain","labelStep","ticks","minor","major","min","Number","toFixed","max","match","fraction","step","math","evaluate","NumberLine","o","_model","dispatchEvent","ModelUpdatedEvent","_rerender","createDefaultModel","_configuration","defaults","configuration","s","handler","InsertSoundEvent","src","done","DeleteSoundEvent","element","React","createElement","Main","onChange","uploadSoundSupport","add","insertSound","bind","onDeleteSound","ReactDOM","render","HTMLElement","normalizedModel"],"mappings":"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","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModelUpdatedEvent, InsertSoundEvent, DeleteSoundEvent } from '@pie-framework/pie-configure-events';\nimport * as defaults from './defaults';\nimport * as math from 'mathjs';\n\n// this function is duplicated in controller; at some point, use the same shared function\nconst updateTicks = (model) => {\n const { graph: { domain, labelStep, ticks = {} } = {} } = model;\n const { minor, major } = ticks;\n\n if (domain) {\n domain.min = Number((domain.min || 0).toFixed(2));\n domain.max = Number((domain.max || 0).toFixed(2));\n }\n\n if (labelStep && typeof labelStep === 'string' && labelStep.match(/^[1-9][0-9]*\\/[1-9][0-9]*$/g)) {\n model.graph.fraction = true;\n\n // update the ticks frequency and label value to match the label step if needed\n const step = math.evaluate(labelStep);\n\n if (step !== major) {\n ticks.major = step;\n ticks.minor = step / (major / minor);\n }\n }\n\n return model;\n};\n\nexport default class NumberLine extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const normalizedModel = {\n ...defaults.model,\n ...model,\n };\n\n return updateTicks(normalizedModel);\n };\n\n constructor() {\n super();\n this._model = NumberLine.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(s) {\n this._model = NumberLine.createDefaultModel(s);\n this._rerender();\n }\n\n onChange = (o) => {\n this._model = { ...this._model, ...o };\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n\n this._rerender();\n };\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _rerender() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onChange: this.onChange,\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["updateTicks","model","graph","domain","labelStep","ticks","minor","major","min","Number","toFixed","max","match","fraction","step","math","evaluate","NumberLine","o","_model","dispatchEvent","ModelUpdatedEvent","_rerender","createDefaultModel","_configuration","defaults","configuration","s","handler","InsertSoundEvent","src","done","DeleteSoundEvent","element","React","createElement","Main","onChange","uploadSoundSupport","add","insertSound","bind","onDeleteSound","ReactDOM","render","HTMLElement","normalizedModel"],"mappings":"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","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModelUpdatedEvent, InsertSoundEvent, DeleteSoundEvent } from '@pie-framework/pie-configure-events';\nimport * as defaults from './defaults';\nimport * as math from 'mathjs';\n\n// this function is duplicated in controller; at some point, use the same shared function\nconst updateTicks = (model) => {\n const { graph: { domain, labelStep, ticks = {} } = {} } = model;\n const { minor, major } = ticks;\n\n if (domain) {\n domain.min = Number((domain.min || 0).toFixed(2));\n domain.max = Number((domain.max || 0).toFixed(2));\n }\n\n if (labelStep && typeof labelStep === 'string' && labelStep.match(/^[1-9][0-9]*\\/[1-9][0-9]*$/g)) {\n model.graph.fraction = true;\n\n // update the ticks frequency and label value to match the label step if needed\n const step = math.evaluate(labelStep);\n\n if (step !== major) {\n ticks.major = step;\n ticks.minor = step / (major / minor);\n }\n }\n\n return model;\n};\n\nexport default class NumberLine extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const normalizedModel = {\n ...defaults.model,\n ...model,\n };\n\n return updateTicks(normalizedModel);\n };\n\n constructor() {\n super();\n this._model = NumberLine.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(s) {\n this._model = NumberLine.createDefaultModel(s);\n this._rerender();\n }\n\n onChange = (o) => {\n this._model = { ...this._model, ...o };\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n\n this._rerender();\n };\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _rerender() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onChange: this.onChange,\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
@@ -25,33 +25,33 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
25
25
 
26
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
27
 
28
+ var _react = _interopRequireDefault(require("react"));
29
+
28
30
  var _configUi = require("@pie-lib/config-ui");
29
31
 
32
+ var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
33
+
34
+ var _numberLine = require("@pie-element/number-line");
35
+
30
36
  var _numberTextField = _interopRequireDefault(require("./number-text-field"));
31
37
 
32
38
  var _cardBar = _interopRequireDefault(require("./card-bar"));
33
39
 
34
- var _numberLine = require("@pie-element/number-line");
35
-
36
40
  var _size = _interopRequireDefault(require("./size"));
37
41
 
38
42
  var _propTypes = _interopRequireDefault(require("prop-types"));
39
43
 
40
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
41
-
42
44
  var _domain = _interopRequireDefault(require("./domain"));
43
45
 
44
46
  var _arrows = _interopRequireDefault(require("./arrows"));
45
47
 
46
48
  var _pointConfig = _interopRequireDefault(require("./point-config"));
47
49
 
48
- var _react = _interopRequireDefault(require("react"));
49
-
50
50
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
51
51
 
52
52
  var _styles = require("@material-ui/core/styles");
53
53
 
54
- var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
54
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
55
55
 
56
56
  var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
57
57
 
@@ -109,7 +109,7 @@ var styles = function styles(theme) {
109
109
  margin: '20px 0'
110
110
  },
111
111
  pointTypeChooser: {
112
- margin: '20px 0'
112
+ margin: "".concat(theme.spacing.unit * 2.5, "px 0")
113
113
  },
114
114
  promptHolder: {
115
115
  width: '100%',
@@ -125,7 +125,7 @@ var styles = function styles(theme) {
125
125
  padding: 0
126
126
  },
127
127
  tooltip: {
128
- fontSize: '12px',
128
+ fontSize: theme.typography.fontSize - 2,
129
129
  whiteSpace: 'pre',
130
130
  maxWidth: '500px'
131
131
  },
@@ -133,9 +133,9 @@ var styles = function styles(theme) {
133
133
  display: 'inline-flex'
134
134
  },
135
135
  errorText: {
136
- fontSize: '12px',
136
+ fontSize: theme.typography.fontSize - 2,
137
137
  color: 'red',
138
- padding: '5px 0'
138
+ paddingTop: theme.spacing.unit
139
139
  }
140
140
  };
141
141
  };
@@ -148,9 +148,9 @@ var toPointType = function toPointType(response) {
148
148
  }
149
149
 
150
150
  return response.pointType[0];
151
- } else {
152
- return "".concat(response.leftPoint[0]).concat(response.rightPoint[0]);
153
151
  }
152
+
153
+ return "".concat(response.leftPoint[0]).concat(response.rightPoint[0]);
154
154
  }
155
155
 
156
156
  return "".concat(response.type[0]).concat(rest(response)).toUpperCase();
@@ -168,10 +168,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
168
168
 
169
169
  (0, _classCallCheck2["default"])(this, Main);
170
170
  _this = _super.call(this, props);
171
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "graphChange", function (o) {
172
- var onChange = _this.props.onChange;
171
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "graphChange", function (obj) {
172
+ var _this$props = _this.props,
173
+ model = _this$props.model,
174
+ onChange = _this$props.onChange;
173
175
 
174
- var graph = _objectSpread(_objectSpread({}, _this.props.model.graph), o);
176
+ var graph = _objectSpread(_objectSpread({}, model.graph), obj);
175
177
 
176
178
  onChange({
177
179
  graph: graph
@@ -197,8 +199,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
197
199
  return;
198
200
  }
199
201
  });
200
- var height = maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable) ? 100 : 50 + (maxNumberOfPoints || 20) * 25;
201
- return height;
202
+ return maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable) ? 100 : 50 + (maxNumberOfPoints || 20) * 25;
202
203
  });
203
204
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxNoOfPoints", function (e, maxNumberOfPoints) {
204
205
  var availableTypes = _this.props.model.graph.availableTypes;
@@ -216,15 +217,15 @@ var Main = /*#__PURE__*/function (_React$Component) {
216
217
  });
217
218
  });
218
219
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeTicks", function (ticks) {
219
- var _this$props = _this.props,
220
- model = _this$props.model,
221
- onChange = _this$props.onChange;
220
+ var _this$props2 = _this.props,
221
+ model = _this$props2.model,
222
+ onChange = _this$props2.onChange;
222
223
 
223
224
  var correctResponse = _numberLine.tickUtils.snapElements(model.graph.domain, ticks, model.correctResponse);
224
225
 
225
226
  var initialElements = _numberLine.tickUtils.snapElements(model.graph.domain, ticks, model.graph.initialElements);
226
227
 
227
- var graph = _objectSpread(_objectSpread({}, _this.props.model.graph), {}, {
228
+ var graph = _objectSpread(_objectSpread({}, model.graph), {}, {
228
229
  ticks: ticks,
229
230
  initialElements: initialElements
230
231
  });
@@ -264,10 +265,10 @@ var Main = /*#__PURE__*/function (_React$Component) {
264
265
  });
265
266
  });
266
267
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveCorrectResponse", function (index, el, position) {
267
- var _this$props2 = _this.props,
268
- onChange = _this$props2.onChange,
269
- model = _this$props2.model;
270
268
  el.position = position;
269
+ var _this$props3 = _this.props,
270
+ onChange = _this$props3.onChange,
271
+ model = _this$props3.model;
271
272
  var update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);
272
273
  var correctResponse = (0, _toConsumableArray2["default"])(model.correctResponse);
273
274
  correctResponse[index] = update;
@@ -276,12 +277,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
276
277
  });
277
278
  });
278
279
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveInitialView", function (index, el, position) {
279
- var _this$props3 = _this.props,
280
- model = _this$props3.model,
281
- onChange = _this$props3.onChange;
282
280
  el.position = position;
281
+ var _this$props4 = _this.props,
282
+ model = _this$props4.model,
283
+ onChange = _this$props4.onChange;
283
284
  var update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);
284
- var initialElements = (0, _toConsumableArray2["default"])(_this.props.model.graph.initialElements);
285
+ var initialElements = (0, _toConsumableArray2["default"])(model.graph.initialElements);
285
286
  initialElements[index] = update;
286
287
 
287
288
  var graph = _objectSpread(_objectSpread({}, model.graph), {}, {
@@ -293,9 +294,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
293
294
  });
294
295
  });
295
296
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "availableTypesChange", function (availableTypes) {
296
- var _this$props4 = _this.props,
297
- model = _this$props4.model,
298
- onChange = _this$props4.onChange;
297
+ var _this$props5 = _this.props,
298
+ model = _this$props5.model,
299
+ onChange = _this$props5.onChange;
299
300
  var correctResponse = model.correctResponse,
300
301
  maxNumberOfPoints = model.graph.maxNumberOfPoints;
301
302
  new Set(correctResponse.map(toPointType)).forEach(function (pointType) {
@@ -314,9 +315,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
314
315
  });
315
316
  });
316
317
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "deleteCorrectResponse", function (indices) {
317
- var _this$props5 = _this.props,
318
- model = _this$props5.model,
319
- onChange = _this$props5.onChange;
318
+ var _this$props6 = _this.props,
319
+ model = _this$props6.model,
320
+ onChange = _this$props6.onChange;
320
321
  var correctResponse = model.correctResponse.filter(function (v, index) {
321
322
  return !indices.some(function (d) {
322
323
  return d === index;
@@ -327,9 +328,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
327
328
  });
328
329
  });
329
330
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "deleteInitialView", function (indices) {
330
- var _this$props6 = _this.props,
331
- model = _this$props6.model,
332
- onChange = _this$props6.onChange;
331
+ var _this$props7 = _this.props,
332
+ model = _this$props7.model,
333
+ onChange = _this$props7.onChange;
333
334
  var initialElements = model.graph.initialElements.filter(function (v, index) {
334
335
  return !indices.some(function (d) {
335
336
  return d === index;
@@ -345,9 +346,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
345
346
  });
346
347
  });
347
348
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "addCorrectResponse", function (data) {
348
- var _this$props7 = _this.props,
349
- model = _this$props7.model,
350
- onChange = _this$props7.onChange;
349
+ var _this$props8 = _this.props,
350
+ model = _this$props8.model,
351
+ onChange = _this$props8.onChange;
351
352
  var correctResponse = (0, _toConsumableArray2["default"])(model.correctResponse);
352
353
  correctResponse.push(toSessionFormat(data));
353
354
  onChange({
@@ -355,9 +356,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
355
356
  });
356
357
  });
357
358
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "addInitialView", function (data) {
358
- var _this$props8 = _this.props,
359
- onChange = _this$props8.onChange,
360
- model = _this$props8.model;
359
+ var _this$props9 = _this.props,
360
+ onChange = _this$props9.onChange,
361
+ model = _this$props9.model;
361
362
 
362
363
  var graph = _objectSpread({}, model.graph);
363
364
 
@@ -369,19 +370,17 @@ var Main = /*#__PURE__*/function (_React$Component) {
369
370
  });
370
371
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "clearCorrectResponse", function () {
371
372
  var onChange = _this.props.onChange;
372
- var correctResponse = [];
373
373
  onChange({
374
- correctResponse: correctResponse
374
+ correctResponse: []
375
375
  });
376
376
  });
377
377
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "clearInitialView", function () {
378
- var _this$props9 = _this.props,
379
- model = _this$props9.model,
380
- onChange = _this$props9.onChange;
381
- var initialElements = [];
378
+ var _this$props10 = _this.props,
379
+ model = _this$props10.model,
380
+ onChange = _this$props10.onChange;
382
381
 
383
382
  var graph = _objectSpread(_objectSpread({}, model.graph), {}, {
384
- initialElements: initialElements
383
+ initialElements: []
385
384
  });
386
385
 
387
386
  onChange({
@@ -389,9 +388,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
389
388
  });
390
389
  });
391
390
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "undoCorrectResponse", function () {
392
- var _this$props10 = _this.props,
393
- model = _this$props10.model,
394
- onChange = _this$props10.onChange;
391
+ var _this$props11 = _this.props,
392
+ model = _this$props11.model,
393
+ onChange = _this$props11.onChange;
395
394
  var correctResponse = (0, _toConsumableArray2["default"])(model.correctResponse);
396
395
  correctResponse.pop();
397
396
  onChange({
@@ -399,9 +398,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
399
398
  });
400
399
  });
401
400
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "undoInitialView", function () {
402
- var _this$props11 = _this.props,
403
- onChange = _this$props11.onChange,
404
- model = _this$props11.model;
401
+ var _this$props12 = _this.props,
402
+ onChange = _this$props12.onChange,
403
+ model = _this$props12.model;
405
404
 
406
405
  var graph = _objectSpread({}, model.graph);
407
406
 
@@ -411,7 +410,6 @@ var Main = /*#__PURE__*/function (_React$Component) {
411
410
  graph: graph
412
411
  });
413
412
  });
414
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAddElement", _this.addInitialView);
415
413
  var _props$model$graph = props.model.graph,
416
414
  _availableTypes = _props$model$graph.availableTypes,
417
415
  _maxNumberOfPoints = _props$model$graph.maxNumberOfPoints;
@@ -430,23 +428,22 @@ var Main = /*#__PURE__*/function (_React$Component) {
430
428
  value: function render() {
431
429
  var _this2 = this;
432
430
 
433
- var _this$props12 = this.props,
434
- classes = _this$props12.classes,
435
- model = _this$props12.model,
436
- _onChange = _this$props12.onChange,
437
- configuration = _this$props12.configuration,
438
- uploadSoundSupport = _this$props12.uploadSoundSupport;
431
+ var _this$props13 = this.props,
432
+ classes = _this$props13.classes,
433
+ model = _this$props13.model,
434
+ _onChange = _this$props13.onChange,
435
+ configuration = _this$props13.configuration,
436
+ uploadSoundSupport = _this$props13.uploadSoundSupport;
439
437
 
440
- var _ref4 = model || {},
441
- graph = _ref4.graph,
442
- spellCheckEnabled = _ref4.spellCheckEnabled,
443
- errors = _ref4.errors;
438
+ var _ref4 = configuration || {},
439
+ _ref4$prompt = _ref4.prompt,
440
+ prompt = _ref4$prompt === void 0 ? {} : _ref4$prompt;
444
441
 
445
- var _ref5 = configuration || {},
446
- _ref5$prompt = _ref5.prompt,
447
- prompt = _ref5$prompt === void 0 ? {} : _ref5$prompt,
448
- _ref5$spellCheck = _ref5.spellCheck,
449
- spellCheck = _ref5$spellCheck === void 0 ? {} : _ref5$spellCheck;
442
+ var _ref5 = model || {},
443
+ errors = _ref5.errors,
444
+ graph = _ref5.graph,
445
+ spellCheckEnabled = _ref5.spellCheckEnabled,
446
+ toolbarEditorPosition = _ref5.toolbarEditorPosition;
450
447
 
451
448
  var _ref6 = errors || {},
452
449
  widthError = _ref6.widthError,
@@ -458,20 +455,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
458
455
  var validationMessage = (0, _utils.generateValidationMessage)();
459
456
  var correctResponse = (0, _cloneDeep["default"])(model.correctResponse || []).map(toGraphFormat);
460
457
  var initialView = (0, _cloneDeep["default"])(graph.initialElements || []).map(toGraphFormat);
461
- var toolbarOpts = {};
462
-
463
- switch (model.toolbarEditorPosition) {
464
- case 'top':
465
- toolbarOpts.position = 'top';
466
- break;
467
-
468
- default:
469
- toolbarOpts.position = 'bottom';
470
- break;
471
- }
472
-
473
- return /*#__PURE__*/_react["default"].createElement("div", {
474
- className: classes.root
458
+ var toolbarOpts = {
459
+ position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
460
+ };
461
+ return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
462
+ hideSettings: true,
463
+ settings: null
475
464
  }, prompt.settings && /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
476
465
  label: prompt.label
477
466
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
@@ -506,16 +495,10 @@ var Main = /*#__PURE__*/function (_React$Component) {
506
495
  fontSize: 'small',
507
496
  color: 'primary',
508
497
  style: {
509
- marginLeft: '5px'
498
+ marginLeft: '8px'
510
499
  }
511
500
  }))
512
- }, "Set up the number line by entering the domain and number of tick marks to display. Labels on the number line can be edited or removed by clicking on the label."), widthError && /*#__PURE__*/_react["default"].createElement("div", {
513
- className: classes.errorText
514
- }, widthError), domainError && /*#__PURE__*/_react["default"].createElement("div", {
515
- className: classes.errorText
516
- }, domainError), maxError && /*#__PURE__*/_react["default"].createElement("div", {
517
- className: classes.errorText
518
- }, maxError), /*#__PURE__*/_react["default"].createElement("div", {
501
+ }, "Set up the number line by entering the domain and number of tick marks to display. Labels on the number line can be edited or removed by clicking on the label."), /*#__PURE__*/_react["default"].createElement("div", {
519
502
  className: classes.row
520
503
  }, /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
521
504
  label: 'Size'
@@ -531,7 +514,13 @@ var Main = /*#__PURE__*/function (_React$Component) {
531
514
  domain: domain
532
515
  });
533
516
  }
534
- }))), /*#__PURE__*/_react["default"].createElement("div", {
517
+ }))), widthError && /*#__PURE__*/_react["default"].createElement("div", {
518
+ className: classes.errorText
519
+ }, widthError), maxError && /*#__PURE__*/_react["default"].createElement("div", {
520
+ className: classes.errorText
521
+ }, maxError), domainError && /*#__PURE__*/_react["default"].createElement("div", {
522
+ className: classes.errorText
523
+ }, domainError), /*#__PURE__*/_react["default"].createElement("div", {
535
524
  className: classes.row
536
525
  }, /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
537
526
  label: 'Ticks'
@@ -566,18 +555,16 @@ var Main = /*#__PURE__*/function (_React$Component) {
566
555
  max: 20,
567
556
  value: graph.maxNumberOfPoints,
568
557
  onChange: this.changeMaxNoOfPoints
569
- })), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
558
+ }), pointsError && /*#__PURE__*/_react["default"].createElement("div", {
559
+ className: classes.errorText
560
+ }, pointsError)), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
570
561
  variant: "outlined",
571
562
  mini: true,
572
563
  color: "primary",
573
564
  onClick: this.setDefaults
574
565
  }, "Reset to default values"), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("br", null), !graph.exhibitOnly && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_cardBar["default"], {
575
566
  header: "Correct Response"
576
- }, "Select answer type and place it on the number line. Intersecting points, line segments and/or rays will appear above the number line. ", /*#__PURE__*/_react["default"].createElement("i", null, "Note: A maximum of 20 points, line segments or rays may be plotted.")), pointsError && /*#__PURE__*/_react["default"].createElement("div", {
577
- className: classes.errorText
578
- }, pointsError), correctResponseError && /*#__PURE__*/_react["default"].createElement("div", {
579
- className: classes.errorText
580
- }, correctResponseError), /*#__PURE__*/_react["default"].createElement(_numberLine.NumberLineComponent, {
567
+ }, "Select answer type and place it on the number line. Intersecting points, line segments and/or rays will appear above the number line. ", /*#__PURE__*/_react["default"].createElement("i", null, "Note: A maximum of 20 points, line segments or rays may be plotted.")), /*#__PURE__*/_react["default"].createElement(_numberLine.NumberLineComponent, {
581
568
  onMoveElement: this.moveCorrectResponse,
582
569
  onDeleteElements: this.deleteCorrectResponse,
583
570
  onAddElement: this.addCorrectResponse,
@@ -586,7 +573,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
586
573
  answer: correctResponse //strip feedback for this model
587
574
  ,
588
575
  model: trimModel(model)
589
- }), /*#__PURE__*/_react["default"].createElement(_cardBar["default"], {
576
+ }), correctResponseError && /*#__PURE__*/_react["default"].createElement("div", {
577
+ className: classes.errorText
578
+ }, correctResponseError), /*#__PURE__*/_react["default"].createElement(_cardBar["default"], {
590
579
  header: "Available Types",
591
580
  mini: true
592
581
  }, "Click on the input options to be displayed to the students. All inputs will display by default."), /*#__PURE__*/_react["default"].createElement("div", {
@@ -599,7 +588,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
599
588
  }, "Use this number line to set a starting point, line segment or ray. This is optional. ", /*#__PURE__*/_react["default"].createElement("br", null), "This number line may also be used to make an exhibit number line, which can not be manipulated by a student."), /*#__PURE__*/_react["default"].createElement(_numberLine.NumberLineComponent, {
600
589
  onMoveElement: this.moveInitialView,
601
590
  onDeleteElements: this.deleteInitialView,
602
- onAddElement: this.onAddElement,
591
+ onAddElement: this.addInitialView,
603
592
  onClearElements: this.clearInitialView,
604
593
  onUndoElement: this.undoInitialView,
605
594
  answer: initialView,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["trimModel","model","feedback","undefined","prompt","graph","title","correctResponse","lineIsSwitched","dataConverter","switchGraphLine","toGraphFormat","toSessionFormat","styles","theme","maxNumberOfPoints","width","checkbox","marginTop","spacing","unit","row","display","flexWrap","paddingRight","hide","opacity","resetDefaults","margin","pointTypeChooser","promptHolder","paddingBottom","marginBottom","paddingTop","section","padding","tooltip","fontSize","whiteSpace","maxWidth","inlineFlexContainer","errorText","color","toPointType","response","rest","pointType","direction","leftPoint","rightPoint","type","toUpperCase","Main","props","o","onChange","height","graphChange","availableTypes","onlyPFAvailable","Object","entries","forEach","value","e","getAdjustedHeight","ticks","tickUtils","snapElements","domain","initialElements","arrows","defaultModel","event","exhibitOnly","index","el","position","update","Set","map","indices","filter","v","some","d","data","push","pop","addInitialView","classes","configuration","uploadSoundSupport","spellCheckEnabled","errors","spellCheck","widthError","domainError","maxError","pointsError","correctResponseError","validationMessage","initialView","toolbarOpts","toolbarEditorPosition","root","settings","label","language","marginLeft","changeSize","changeTicks","changeArrows","changeGraphTitle","changeMaxNoOfPoints","setDefaults","moveCorrectResponse","deleteCorrectResponse","addCorrectResponse","clearCorrectResponse","undoCorrectResponse","availableTypesChange","moveInitialView","deleteInitialView","onAddElement","clearInitialView","undoInitialView","exhibitChanged","React","Component","PropTypes","object","isRequired","func","name"],"mappings":"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","sourcesContent":["import { InputCheckbox, FeedbackConfig, FormSection } from '@pie-lib/config-ui';\nimport NumberTextField from './number-text-field';\nimport CardBar from './card-bar';\nimport { NumberLineComponent, dataConverter, tickUtils } from '@pie-element/number-line';\nimport Size from './size';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Domain from './domain';\nimport Arrows from './arrows';\nimport PointConfig from './point-config';\nimport React from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { withStyles } from '@material-ui/core/styles';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport Ticks from './ticks';\nimport { model as defaultModel } from './defaults';\nimport { generateValidationMessage } from './utils';\n\nconst trimModel = (model) => ({\n ...model,\n feedback: undefined,\n prompt: undefined,\n graph: { ...model.graph, title: undefined },\n correctResponse: undefined,\n});\n\nconst { lineIsSwitched, switchGraphLine, toGraphFormat, toSessionFormat } = dataConverter;\n\nconst styles = (theme) => ({\n maxNumberOfPoints: {\n width: '150px',\n },\n checkbox: {\n marginTop: theme.spacing.unit * 2,\n },\n row: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n paddingRight: theme.spacing.unit * 2,\n },\n },\n hide: {\n opacity: 0.5,\n },\n resetDefaults: {\n margin: '20px 0',\n },\n pointTypeChooser: {\n margin: '20px 0',\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n section: {\n margin: 0,\n padding: 0,\n },\n tooltip: {\n fontSize: '12px',\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n inlineFlexContainer: {\n display: 'inline-flex',\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0',\n },\n});\n\nexport const toPointType = (response) => {\n function rest(response) {\n if (response.pointType) {\n if (response.direction) {\n return `${response.pointType[0]}${response.direction[0]}`;\n }\n return response.pointType[0];\n } else {\n return `${response.leftPoint[0]}${response.rightPoint[0]}`;\n }\n }\n return `${response.type[0]}${rest(response)}`.toUpperCase();\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const {\n model: {\n graph: { availableTypes, maxNumberOfPoints },\n },\n } = props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ height });\n }\n\n graphChange = (o) => {\n const { onChange } = this.props;\n const graph = { ...this.props.model.graph, ...o };\n onChange({ graph });\n };\n\n changeSize = ({ width, height }) => this.graphChange({ width, height });\n\n getAdjustedHeight = (availableTypes, maxNumberOfPoints) => {\n let onlyPFAvailable = true;\n\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (type !== 'PF' && value) {\n onlyPFAvailable = false;\n return;\n }\n });\n\n const height =\n maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable) ? 100 : 50 + (maxNumberOfPoints || 20) * 25;\n\n return height;\n };\n\n changeMaxNoOfPoints = (e, maxNumberOfPoints) => {\n const {\n model: {\n graph: { availableTypes },\n },\n } = this.props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ maxNumberOfPoints, height });\n };\n\n changeGraphTitle = (title) => this.graphChange({ title });\n\n changeTicks = (ticks) => {\n const { model, onChange } = this.props;\n const correctResponse = tickUtils.snapElements(model.graph.domain, ticks, model.correctResponse);\n const initialElements = tickUtils.snapElements(model.graph.domain, ticks, model.graph.initialElements);\n\n const graph = { ...this.props.model.graph, ticks, initialElements };\n onChange({ graph, correctResponse });\n };\n\n changeArrows = (arrows) => this.graphChange({ arrows });\n\n setDefaults = () => {\n const {\n graph: { availableTypes, maxNumberOfPoints },\n } = defaultModel;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...cloneDeep(defaultModel.graph), height };\n\n this.props.onChange({ graph });\n };\n\n exhibitChanged = (event, value) => {\n const graph = { ...this.props.model.graph, exhibitOnly: value };\n this.props.onChange({ graph });\n };\n\n moveCorrectResponse = (index, el, position) => {\n const { onChange, model } = this.props;\n el.position = position;\n const update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);\n const correctResponse = [...model.correctResponse];\n correctResponse[index] = update;\n onChange({ correctResponse });\n };\n\n moveInitialView = (index, el, position) => {\n const { model, onChange } = this.props;\n el.position = position;\n const update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);\n const initialElements = [...this.props.model.graph.initialElements];\n initialElements[index] = update;\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n availableTypesChange = (availableTypes) => {\n const { model, onChange } = this.props;\n const {\n correctResponse,\n graph: { maxNumberOfPoints },\n } = model;\n\n new Set(correctResponse.map(toPointType)).forEach((pointType) => {\n availableTypes[pointType] = true;\n });\n\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...model.graph, availableTypes, height };\n\n onChange({ graph });\n };\n\n deleteCorrectResponse = (indices) => {\n const { model, onChange } = this.props;\n const correctResponse = model.correctResponse.filter((v, index) => {\n return !indices.some((d) => d === index);\n });\n onChange({ correctResponse });\n };\n\n deleteInitialView = (indices) => {\n const { model, onChange } = this.props;\n const initialElements = model.graph.initialElements.filter((v, index) => {\n return !indices.some((d) => d === index);\n });\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n addCorrectResponse = (data) => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.push(toSessionFormat(data));\n onChange({ correctResponse });\n };\n\n addInitialView = (data) => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.push(toSessionFormat(data));\n onChange({ graph });\n };\n\n clearCorrectResponse = () => {\n const { onChange } = this.props;\n const correctResponse = [];\n onChange({ correctResponse });\n };\n\n clearInitialView = () => {\n const { model, onChange } = this.props;\n const initialElements = [];\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n undoCorrectResponse = () => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.pop();\n onChange({ correctResponse });\n };\n\n undoInitialView = () => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.pop();\n onChange({ graph });\n };\n\n onAddElement = this.addInitialView;\n\n render() {\n const { classes, model, onChange, configuration, uploadSoundSupport } = this.props;\n\n const { graph, spellCheckEnabled, errors } = model || {};\n const { prompt = {}, spellCheck = {} } = configuration || {};\n const { widthError, domainError, maxError, pointsError, correctResponseError } = errors || {};\n const validationMessage = generateValidationMessage();\n\n const correctResponse = cloneDeep(model.correctResponse || []).map(toGraphFormat);\n\n const initialView = cloneDeep(graph.initialElements || []).map(toGraphFormat);\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n return (\n <div className={classes.root}>\n {prompt.settings && (\n <FormSection label={prompt.label}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={(prompt) => onChange({ prompt })}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </FormSection>\n )}\n <CardBar\n header=\"Attributes\"\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n }\n >\n Set up the number line by entering the domain and number of tick marks to display. Labels on the number line\n can be edited or removed by clicking on the label.\n </CardBar>\n\n {widthError && <div className={classes.errorText}>{widthError}</div>}\n {domainError && <div className={classes.errorText}>{domainError}</div>}\n {maxError && <div className={classes.errorText}>{maxError}</div>}\n\n <div className={classes.row}>\n <FormSection label={'Size'}>\n <Size size={graph} onChange={this.changeSize} />\n </FormSection>\n\n <FormSection label={'Domain'}>\n <Domain domain={graph.domain} onChange={(domain) => this.graphChange({ domain })} />\n </FormSection>\n </div>\n <div className={classes.row}>\n <FormSection label={'Ticks'}>\n <Ticks ticks={graph.ticks} onChange={this.changeTicks} domain={graph.domain} />\n </FormSection>\n <FormSection label={'Arrows'}>\n <Arrows arrows={graph.arrows} onChange={this.changeArrows} />\n </FormSection>\n </div>\n <FormSection label={'Title'}>\n <EditableHtml\n markup={graph.title || ''}\n onChange={this.changeGraphTitle}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </FormSection>\n <FormSection label={'Limits'}>\n <NumberTextField\n className={classes.maxNumberOfPoints}\n label=\"Max No of Elements\"\n min={1}\n max={20}\n value={graph.maxNumberOfPoints}\n onChange={this.changeMaxNoOfPoints}\n />\n </FormSection>\n <Button variant=\"outlined\" mini color=\"primary\" onClick={this.setDefaults}>\n Reset to default values\n </Button>\n <br />\n <br />\n\n {!graph.exhibitOnly && (\n <div>\n <CardBar header=\"Correct Response\">\n Select answer type and place it on the number line. Intersecting points, line segments and/or rays will\n appear above the number line. <i>Note: A maximum of 20 points, line segments or rays may be plotted.</i>\n </CardBar>\n\n {pointsError && <div className={classes.errorText}>{pointsError}</div>}\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n\n <NumberLineComponent\n onMoveElement={this.moveCorrectResponse}\n onDeleteElements={this.deleteCorrectResponse}\n onAddElement={this.addCorrectResponse}\n onClearElements={this.clearCorrectResponse}\n onUndoElement={this.undoCorrectResponse}\n answer={correctResponse}\n //strip feedback for this model\n model={trimModel(model)}\n />\n <CardBar header=\"Available Types\" mini>\n Click on the input options to be displayed to the students. All inputs will display by default.\n </CardBar>\n <div className={classes.pointTypeChooser}>\n <PointConfig onSelectionChange={this.availableTypesChange} selection={graph.availableTypes} />\n </div>\n </div>\n )}\n <CardBar header=\"Initial view/Make Exhibit\">\n Use this number line to set a starting point, line segment or ray. This is optional. <br />\n This number line may also be used to make an exhibit number line, which can not be manipulated by a student.\n </CardBar>\n <NumberLineComponent\n onMoveElement={this.moveInitialView}\n onDeleteElements={this.deleteInitialView}\n onAddElement={this.onAddElement}\n onClearElements={this.clearInitialView}\n onUndoElement={this.undoInitialView}\n answer={initialView}\n model={trimModel(model)}\n />\n <InputCheckbox\n label=\"Make exhibit\"\n className={classes.checkbox}\n checked={graph.exhibitOnly}\n onChange={this.exhibitChanged}\n value={'exhibitOnly'}\n />\n\n {!graph.exhibitOnly && (\n <React.Fragment>\n <br />\n <FeedbackConfig\n feedback={model.feedback}\n onChange={(feedback) => onChange({ feedback })}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["trimModel","model","feedback","undefined","prompt","graph","title","correctResponse","lineIsSwitched","dataConverter","switchGraphLine","toGraphFormat","toSessionFormat","styles","theme","maxNumberOfPoints","width","checkbox","marginTop","spacing","unit","row","display","flexWrap","paddingRight","hide","opacity","resetDefaults","margin","pointTypeChooser","promptHolder","paddingBottom","marginBottom","paddingTop","section","padding","tooltip","fontSize","typography","whiteSpace","maxWidth","inlineFlexContainer","errorText","color","toPointType","response","rest","pointType","direction","leftPoint","rightPoint","type","toUpperCase","Main","props","obj","onChange","height","graphChange","availableTypes","onlyPFAvailable","Object","entries","forEach","value","e","getAdjustedHeight","ticks","tickUtils","snapElements","domain","initialElements","arrows","defaultModel","event","exhibitOnly","index","el","position","update","Set","map","indices","filter","v","some","d","data","push","pop","classes","configuration","uploadSoundSupport","errors","spellCheckEnabled","toolbarEditorPosition","widthError","domainError","maxError","pointsError","correctResponseError","validationMessage","initialView","toolbarOpts","settings","label","language","marginLeft","changeSize","changeTicks","changeArrows","changeGraphTitle","changeMaxNoOfPoints","setDefaults","moveCorrectResponse","deleteCorrectResponse","addCorrectResponse","clearCorrectResponse","undoCorrectResponse","availableTypesChange","moveInitialView","deleteInitialView","addInitialView","clearInitialView","undoInitialView","exhibitChanged","React","Component","PropTypes","object","isRequired","func","name"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { InputCheckbox, FeedbackConfig, FormSection, layout } from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { NumberLineComponent, dataConverter, tickUtils } from '@pie-element/number-line';\nimport NumberTextField from './number-text-field';\nimport CardBar from './card-bar';\nimport Size from './size';\nimport PropTypes from 'prop-types';\nimport Domain from './domain';\nimport Arrows from './arrows';\nimport PointConfig from './point-config';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport Ticks from './ticks';\nimport { model as defaultModel } from './defaults';\nimport { generateValidationMessage } from './utils';\n\nconst trimModel = (model) => ({\n ...model,\n feedback: undefined,\n prompt: undefined,\n graph: { ...model.graph, title: undefined },\n correctResponse: undefined,\n});\n\nconst { lineIsSwitched, switchGraphLine, toGraphFormat, toSessionFormat } = dataConverter;\n\nconst styles = (theme) => ({\n maxNumberOfPoints: {\n width: '150px',\n },\n checkbox: {\n marginTop: theme.spacing.unit * 2,\n },\n row: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n paddingRight: theme.spacing.unit * 2,\n },\n },\n hide: {\n opacity: 0.5,\n },\n resetDefaults: {\n margin: '20px 0',\n },\n pointTypeChooser: {\n margin: `${theme.spacing.unit * 2.5}px 0`,\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n section: {\n margin: 0,\n padding: 0,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n inlineFlexContainer: {\n display: 'inline-flex',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: 'red',\n paddingTop: theme.spacing.unit,\n },\n});\n\nexport const toPointType = (response) => {\n function rest(response) {\n if (response.pointType) {\n if (response.direction) {\n return `${response.pointType[0]}${response.direction[0]}`;\n }\n\n return response.pointType[0];\n }\n\n return `${response.leftPoint[0]}${response.rightPoint[0]}`;\n }\n\n return `${response.type[0]}${rest(response)}`.toUpperCase();\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const {\n model: {\n graph: { availableTypes, maxNumberOfPoints },\n },\n } = props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ height });\n }\n\n graphChange = (obj) => {\n const { model, onChange } = this.props;\n const graph = { ...model.graph, ...obj };\n\n onChange({ graph });\n };\n\n changeSize = ({ width, height }) => this.graphChange({ width, height });\n\n getAdjustedHeight = (availableTypes, maxNumberOfPoints) => {\n let onlyPFAvailable = true;\n\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (type !== 'PF' && value) {\n onlyPFAvailable = false;\n\n return;\n }\n });\n\n return maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable)\n ? 100\n : 50 + (maxNumberOfPoints || 20) * 25;\n };\n\n changeMaxNoOfPoints = (e, maxNumberOfPoints) => {\n const {\n model: {\n graph: { availableTypes },\n },\n } = this.props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ maxNumberOfPoints, height });\n };\n\n changeGraphTitle = (title) => this.graphChange({ title });\n\n changeTicks = (ticks) => {\n const { model, onChange } = this.props;\n const correctResponse = tickUtils.snapElements(model.graph.domain, ticks, model.correctResponse);\n const initialElements = tickUtils.snapElements(model.graph.domain, ticks, model.graph.initialElements);\n const graph = { ...model.graph, ticks, initialElements };\n\n onChange({ graph, correctResponse });\n };\n\n changeArrows = (arrows) => this.graphChange({ arrows });\n\n setDefaults = () => {\n const {\n graph: { availableTypes, maxNumberOfPoints },\n } = defaultModel;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...cloneDeep(defaultModel.graph), height };\n\n this.props.onChange({ graph });\n };\n\n exhibitChanged = (event, value) => {\n const graph = { ...this.props.model.graph, exhibitOnly: value };\n\n this.props.onChange({ graph });\n };\n\n moveCorrectResponse = (index, el, position) => {\n el.position = position;\n\n const { onChange, model } = this.props;\n const update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);\n const correctResponse = [...model.correctResponse];\n correctResponse[index] = update;\n\n onChange({ correctResponse });\n };\n\n moveInitialView = (index, el, position) => {\n el.position = position;\n\n const { model, onChange } = this.props;\n const update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);\n const initialElements = [...model.graph.initialElements];\n initialElements[index] = update;\n const graph = { ...model.graph, initialElements };\n\n onChange({ graph });\n };\n\n availableTypesChange = (availableTypes) => {\n const { model, onChange } = this.props;\n const {\n correctResponse,\n graph: { maxNumberOfPoints },\n } = model;\n\n new Set(correctResponse.map(toPointType)).forEach((pointType) => {\n availableTypes[pointType] = true;\n });\n\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...model.graph, availableTypes, height };\n\n onChange({ graph });\n };\n\n deleteCorrectResponse = (indices) => {\n const { model, onChange } = this.props;\n const correctResponse = model.correctResponse.filter((v, index) => !indices.some((d) => d === index));\n\n onChange({ correctResponse });\n };\n\n deleteInitialView = (indices) => {\n const { model, onChange } = this.props;\n const initialElements = model.graph.initialElements.filter((v, index) => !indices.some((d) => d === index));\n const graph = { ...model.graph, initialElements };\n\n onChange({ graph });\n };\n\n addCorrectResponse = (data) => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.push(toSessionFormat(data));\n\n onChange({ correctResponse });\n };\n\n addInitialView = (data) => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.push(toSessionFormat(data));\n\n onChange({ graph });\n };\n\n clearCorrectResponse = () => {\n const { onChange } = this.props;\n\n onChange({ correctResponse: [] });\n };\n\n clearInitialView = () => {\n const { model, onChange } = this.props;\n const graph = { ...model.graph, initialElements: [] };\n\n onChange({ graph });\n };\n\n undoCorrectResponse = () => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.pop();\n\n onChange({ correctResponse });\n };\n\n undoInitialView = () => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.pop();\n\n onChange({ graph });\n };\n\n render() {\n const { classes, model, onChange, configuration, uploadSoundSupport } = this.props;\n const { prompt = {} } = configuration || {};\n const { errors, graph, spellCheckEnabled, toolbarEditorPosition } = model || {};\n\n const { widthError, domainError, maxError, pointsError, correctResponseError } = errors || {};\n const validationMessage = generateValidationMessage();\n\n const correctResponse = cloneDeep(model.correctResponse || []).map(toGraphFormat);\n const initialView = cloneDeep(graph.initialElements || []).map(toGraphFormat);\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n return (\n <layout.ConfigLayout hideSettings={true} settings={null}>\n {prompt.settings && (\n <FormSection label={prompt.label}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={(prompt) => onChange({ prompt })}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </FormSection>\n )}\n\n <CardBar\n header=\"Attributes\"\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </Tooltip>\n }\n >\n Set up the number line by entering the domain and number of tick marks to display. Labels on the number line\n can be edited or removed by clicking on the label.\n </CardBar>\n\n <div className={classes.row}>\n <FormSection label={'Size'}>\n <Size size={graph} onChange={this.changeSize} />\n </FormSection>\n\n <FormSection label={'Domain'}>\n <Domain domain={graph.domain} onChange={(domain) => this.graphChange({ domain })} />\n </FormSection>\n </div>\n\n {widthError && <div className={classes.errorText}>{widthError}</div>}\n {maxError && <div className={classes.errorText}>{maxError}</div>}\n {domainError && <div className={classes.errorText}>{domainError}</div>}\n\n <div className={classes.row}>\n <FormSection label={'Ticks'}>\n <Ticks ticks={graph.ticks} onChange={this.changeTicks} domain={graph.domain} />\n </FormSection>\n\n <FormSection label={'Arrows'}>\n <Arrows arrows={graph.arrows} onChange={this.changeArrows} />\n </FormSection>\n </div>\n\n <FormSection label={'Title'}>\n <EditableHtml\n markup={graph.title || ''}\n onChange={this.changeGraphTitle}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </FormSection>\n\n <FormSection label={'Limits'}>\n <NumberTextField\n className={classes.maxNumberOfPoints}\n label=\"Max No of Elements\"\n min={1}\n max={20}\n value={graph.maxNumberOfPoints}\n onChange={this.changeMaxNoOfPoints}\n />\n {pointsError && <div className={classes.errorText}>{pointsError}</div>}\n </FormSection>\n\n <Button variant=\"outlined\" mini color=\"primary\" onClick={this.setDefaults}>\n Reset to default values\n </Button>\n\n <br />\n <br />\n\n {!graph.exhibitOnly && (\n <div>\n <CardBar header=\"Correct Response\">\n Select answer type and place it on the number line. Intersecting points, line segments and/or rays will\n appear above the number line. <i>Note: A maximum of 20 points, line segments or rays may be plotted.</i>\n </CardBar>\n <NumberLineComponent\n onMoveElement={this.moveCorrectResponse}\n onDeleteElements={this.deleteCorrectResponse}\n onAddElement={this.addCorrectResponse}\n onClearElements={this.clearCorrectResponse}\n onUndoElement={this.undoCorrectResponse}\n answer={correctResponse}\n //strip feedback for this model\n model={trimModel(model)}\n />\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n\n <CardBar header=\"Available Types\" mini>\n Click on the input options to be displayed to the students. All inputs will display by default.\n </CardBar>\n\n <div className={classes.pointTypeChooser}>\n <PointConfig onSelectionChange={this.availableTypesChange} selection={graph.availableTypes} />\n </div>\n </div>\n )}\n\n <CardBar header=\"Initial view/Make Exhibit\">\n Use this number line to set a starting point, line segment or ray. This is optional. <br />\n This number line may also be used to make an exhibit number line, which can not be manipulated by a student.\n </CardBar>\n <NumberLineComponent\n onMoveElement={this.moveInitialView}\n onDeleteElements={this.deleteInitialView}\n onAddElement={this.addInitialView}\n onClearElements={this.clearInitialView}\n onUndoElement={this.undoInitialView}\n answer={initialView}\n model={trimModel(model)}\n />\n\n <InputCheckbox\n label=\"Make exhibit\"\n className={classes.checkbox}\n checked={graph.exhibitOnly}\n onChange={this.exhibitChanged}\n value={'exhibitOnly'}\n />\n\n {!graph.exhibitOnly && (\n <React.Fragment>\n <br />\n <FeedbackConfig\n feedback={model.feedback}\n onChange={(feedback) => onChange({ feedback })}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
@@ -42,7 +42,10 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
42
42
  var Point = _numberLine.pointChooser.Point;
43
43
  var styles = {
44
44
  displayToggles: {
45
- paddingTop: '20px'
45
+ paddingTop: '20px',
46
+ '& > :first-child': {
47
+ marginRight: '8px'
48
+ }
46
49
  }
47
50
  };
48
51
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/point-config.jsx"],"names":["Point","pointChooser","styles","displayToggles","paddingTop","PointConfig","props","state","selection","point","update","_stateUpdate","value","display","types","reduce","acc","setState","onSelectionChange","classes","icons","map","toLowerCase","toggle","bind","active","toggleAll","React","Component","PropTypes","func","object","name"],"mappings":"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","sourcesContent":["import Button from '@material-ui/core/Button';\nimport React from 'react';\nimport { pointChooser } from '@pie-element/number-line';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nconst { Point } = pointChooser;\n\nconst styles = {\n displayToggles: {\n paddingTop: '20px',\n },\n};\n\nclass PointConfig extends React.Component {\n static propTypes = {\n onSelectionChange: PropTypes.func,\n selection: PropTypes.object,\n classes: PropTypes.object,\n };\n constructor(props) {\n super(props);\n this.state = {\n selection: props.selection,\n };\n }\n\n toggle(point) {\n const update = { ...this.state.selection };\n update[point] = !update[point];\n this._stateUpdate(update);\n }\n\n toggleAll(value) {\n const display = [...PointConfig.types].reduce((acc, point) => {\n acc[point] = value;\n\n return acc;\n }, {});\n\n this._stateUpdate(display);\n }\n\n _stateUpdate(selection) {\n this.setState({ selection }, () => {\n this.props.onSelectionChange(this.state.selection);\n });\n }\n\n active(point) {\n return this.state.selection[point] === true; // ? 'active' : '';\n }\n\n render() {\n const { classes } = this.props;\n\n const icons = PointConfig.types.map((point) => {\n return (\n <Point\n iconKey={point.toLowerCase()}\n key={point.toLowerCase()}\n onClick={this.toggle.bind(this, point)}\n active={this.active(point)}\n />\n );\n });\n\n return (\n <div>\n <div>{icons}</div>\n <div className={classes.displayToggles}>\n <Button variant=\"outlined\" size=\"small\" onClick={this.toggleAll.bind(this, true)}>\n Display All\n </Button>\n <Button variant=\"outlined\" size=\"small\" onClick={this.toggleAll.bind(this, false)}>\n None\n </Button>\n </div>\n </div>\n );\n }\n}\n\nPointConfig.types = ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP'];\n\nexport default withStyles(styles, { name: 'PointConfig' })(PointConfig);\n"],"file":"point-config.js"}
1
+ {"version":3,"sources":["../src/point-config.jsx"],"names":["Point","pointChooser","styles","displayToggles","paddingTop","marginRight","PointConfig","props","state","selection","point","update","_stateUpdate","value","display","types","reduce","acc","setState","onSelectionChange","classes","icons","map","toLowerCase","toggle","bind","active","toggleAll","React","Component","PropTypes","func","object","name"],"mappings":"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","sourcesContent":["import Button from '@material-ui/core/Button';\nimport React from 'react';\nimport { pointChooser } from '@pie-element/number-line';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nconst { Point } = pointChooser;\n\nconst styles = {\n displayToggles: {\n paddingTop: '20px',\n '& > :first-child': {\n marginRight: '8px',\n },\n },\n};\n\nclass PointConfig extends React.Component {\n static propTypes = {\n onSelectionChange: PropTypes.func,\n selection: PropTypes.object,\n classes: PropTypes.object,\n };\n constructor(props) {\n super(props);\n this.state = {\n selection: props.selection,\n };\n }\n\n toggle(point) {\n const update = { ...this.state.selection };\n update[point] = !update[point];\n this._stateUpdate(update);\n }\n\n toggleAll(value) {\n const display = [...PointConfig.types].reduce((acc, point) => {\n acc[point] = value;\n\n return acc;\n }, {});\n\n this._stateUpdate(display);\n }\n\n _stateUpdate(selection) {\n this.setState({ selection }, () => {\n this.props.onSelectionChange(this.state.selection);\n });\n }\n\n active(point) {\n return this.state.selection[point] === true; // ? 'active' : '';\n }\n\n render() {\n const { classes } = this.props;\n\n const icons = PointConfig.types.map((point) => {\n return (\n <Point\n iconKey={point.toLowerCase()}\n key={point.toLowerCase()}\n onClick={this.toggle.bind(this, point)}\n active={this.active(point)}\n />\n );\n });\n\n return (\n <div>\n <div>{icons}</div>\n <div className={classes.displayToggles}>\n <Button variant=\"outlined\" size=\"small\" onClick={this.toggleAll.bind(this, true)}>\n Display All\n </Button>\n <Button variant=\"outlined\" size=\"small\" onClick={this.toggleAll.bind(this, false)}>\n None\n </Button>\n </div>\n </div>\n );\n }\n}\n\nPointConfig.types = ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP'];\n\nexport default withStyles(styles, { name: 'PointConfig' })(PointConfig);\n"],"file":"point-config.js"}
@@ -7,8 +7,8 @@
7
7
  "dependencies": {
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@pie-framework/pie-configure-events": "^1.3.0",
10
- "@pie-lib/config-ui": "^11.1.4",
11
- "@pie-lib/editable-html": "^9.3.0",
10
+ "@pie-lib/config-ui": "^11.2.0",
11
+ "@pie-lib/editable-html": "^9.4.0",
12
12
  "react": "^16.8.1",
13
13
  "react-dom": "^16.8.1"
14
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/number-line",
3
- "version": "6.4.1",
3
+ "version": "6.4.2-next.120+851bb10e8",
4
4
  "repository": "pie-framework/pie-elements",
5
5
  "description": "",
6
6
  "publishConfig": {
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "author": "pie framework developers",
29
29
  "license": "ISC",
30
- "gitHead": "4b3c97b360f5c94d400b37d3b900fd42ef8e4f1c",
30
+ "gitHead": "851bb10e8e0f8605c2c39f4f5c64cf689a6c6e1e",
31
31
  "scripts": {
32
32
  "postpublish": "../../scripts/postpublish"
33
33
  },