@pie-element/graphing 3.5.3 → 3.5.4-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.
Files changed (41) hide show
  1. package/CHANGELOG.md +163 -0
  2. package/configure/CHANGELOG.md +152 -0
  3. package/configure/lib/configure.js +108 -47
  4. package/configure/lib/configure.js.map +1 -1
  5. package/configure/lib/correct-response.js +287 -54
  6. package/configure/lib/correct-response.js.map +1 -1
  7. package/configure/lib/defaults.js +49 -7
  8. package/configure/lib/defaults.js.map +1 -1
  9. package/configure/lib/graphing-config.js +160 -184
  10. package/configure/lib/graphing-config.js.map +1 -1
  11. package/configure/lib/index.js +43 -18
  12. package/configure/lib/index.js.map +1 -1
  13. package/configure/lib/utils.js +94 -0
  14. package/configure/lib/utils.js.map +1 -0
  15. package/configure/package.json +4 -4
  16. package/controller/CHANGELOG.md +40 -0
  17. package/controller/lib/defaults.js +9 -1
  18. package/controller/lib/defaults.js.map +1 -1
  19. package/controller/lib/index.js +48 -23
  20. package/controller/lib/index.js.map +1 -1
  21. package/controller/lib/utils.js +8 -6
  22. package/controller/lib/utils.js.map +1 -1
  23. package/controller/package.json +1 -1
  24. package/docs/config-schema.json +282 -0
  25. package/docs/config-schema.json.md +213 -1
  26. package/docs/demo/generate.js +8 -1
  27. package/docs/pie-schema.json +228 -3
  28. package/docs/pie-schema.json.md +166 -2
  29. package/lib/index.js +4 -1
  30. package/lib/index.js.map +1 -1
  31. package/lib/main.js +15 -19
  32. package/lib/main.js.map +1 -1
  33. package/lib/utils.js +3 -1
  34. package/lib/utils.js.map +1 -1
  35. package/package.json +6 -6
  36. package/module/configure.js +0 -1260
  37. package/module/controller.js +0 -21893
  38. package/module/demo.js +0 -92
  39. package/module/element.js +0 -245
  40. package/module/index.html +0 -16
  41. package/module/manifest.json +0 -14
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["tools","allTools","model","answers","arrows","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","labels","padding","prompt","range","rationale","title","toolbarTools","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","authoring","settings","label","enabled","scoringType","studentInstructions","teacherInstructions"],"mappings":";;;;;;;AAAA;;sBAE0BA,e,CAAlBC,Q;IAAAA,Q,gCAAW,E;AACnB;AACA;AACA;AACA;;eAEe;AACbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,EADJ;AAELC,IAAAA,MAAM,EAAE,IAFH;AAGLC,IAAAA,eAAe,EAAE,EAHZ;AAILC,IAAAA,MAAM,EAAE;AACNC,MAAAA,GAAG,EAAE,CAAC,CADA;AAENC,MAAAA,GAAG,EAAE,CAFC;AAGNC,MAAAA,IAAI,EAAE,CAHA;AAINC,MAAAA,SAAS,EAAE,CAJL;AAKNC,MAAAA,SAAS,EAAE;AALL,KAJH;AAWLC,IAAAA,KAAK,EAAE;AACLC,MAAAA,KAAK,EAAE,GADF;AAELC,MAAAA,MAAM,EAAE;AAFH,KAXF;AAeLC,IAAAA,MAAM,EAAE,EAfH;AAgBLC,IAAAA,OAAO,EAAE,IAhBJ;AAiBLC,IAAAA,MAAM,EAAE,EAjBH;AAkBLC,IAAAA,KAAK,EAAE;AACLX,MAAAA,GAAG,EAAE,CAAC,CADD;AAELC,MAAAA,GAAG,EAAE,CAFA;AAGLC,MAAAA,IAAI,EAAE,CAHD;AAILC,MAAAA,SAAS,EAAE,CAJN;AAKLC,MAAAA,SAAS,EAAE;AALN,KAlBF;AAyBLQ,IAAAA,SAAS,EAAE,EAzBN;AA0BLC,IAAAA,KAAK,EAAE,EA1BF;AA2BLC,IAAAA,YAAY,EAAEpB,QA3BT;AA4BLqB,IAAAA,aAAa,EAAE,IA5BV;AA6BLC,IAAAA,gBAAgB,EAAE,IA7Bb;AA8BLC,IAAAA,0BAA0B,EAAE,IA9BvB;AA+BLC,IAAAA,0BAA0B,EAAE;AA/BvB,GADM;AAkCbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,SAAS,EAAE;AACTC,MAAAA,QAAQ,EAAE,KADD;AAETC,MAAAA,KAAK,EAAE,iBAFE;AAGTC,MAAAA,OAAO,EAAE;AAHA,KADE;AAMb1B,IAAAA,MAAM,EAAE;AACNwB,MAAAA,QAAQ,EAAE,KADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KANK;AAUbb,IAAAA,OAAO,EAAE;AACPY,MAAAA,QAAQ,EAAE,KADH;AAEPC,MAAAA,KAAK,EAAE;AAFA,KAVI;AAcbd,IAAAA,MAAM,EAAE;AACNa,MAAAA,QAAQ,EAAE,KADJ;AAENC,MAAAA,KAAK,EAAE,QAFD;AAGNC,MAAAA,OAAO,EAAE;AAHH,KAdK;AAmBbb,IAAAA,MAAM,EAAE;AACNW,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KAnBK;AAuBbV,IAAAA,SAAS,EAAE;AACTS,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAvBE;AA2BbE,IAAAA,WAAW,EAAE;AACXH,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KA3BA;AA+BbG,IAAAA,mBAAmB,EAAE;AACnBJ,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KA/BR;AAmCbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAnCR;AAuCbT,IAAAA,KAAK,EAAE;AACLQ,MAAAA,QAAQ,EAAE,KADL;AAELC,MAAAA,KAAK,EAAE,aAFF;AAGLC,MAAAA,OAAO,EAAE;AAHJ;AAvCM;AAlCF,C","sourcesContent":["import { tools } from '@pie-lib/graphing';\n\nconst { allTools = [] } = tools;\n/**\n * NOTE: There's no functionality described for padding\n * so there's no implementation (they are only added in model)\n */\n\nexport default {\n model: {\n answers: {},\n arrows: true,\n backgroundMarks: [],\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x'\n },\n graph: {\n width: 500,\n height: 500\n },\n labels: {},\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y'\n },\n rationale: '',\n title: '',\n toolbarTools: allTools,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true\n },\n configuration: {\n authoring: {\n settings: false,\n label: 'Allow authoring',\n enabled: false\n },\n arrows: {\n settings: false,\n label: 'Include arrows'\n },\n padding: {\n settings: false,\n label: 'Padding'\n },\n labels: {\n settings: false,\n label: 'Labels',\n enabled: true\n },\n prompt: {\n settings: true,\n label: 'Item Stem'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type'\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n title: {\n settings: false,\n label: 'Graph Title',\n enabled: true\n }\n }\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["tools","allTools","model","answers","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","padding","prompt","range","rationale","standardGrid","title","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","authoring","settings","label","enabled","graphDimensions","scoringType","studentInstructions","teacherInstructions","spellCheck","maxImageWidth","maxImageHeight"],"mappings":"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","sourcesContent":["import { tools } from '@pie-lib/graphing';\n\nconst { allTools = [] } = tools;\n\nexport default {\n model: {\n answers: {},\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true\n },\n backgroundMarks: [],\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x'\n },\n graph: {\n width: 500,\n height: 500\n },\n includeAxes: true,\n labels: {},\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y'\n },\n rationale: '',\n standardGrid: false,\n title: '',\n toolbarTools: allTools,\n coordinatesOnHover: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n authoring: {\n settings: false,\n label: 'Allow authoring',\n enabled: false\n },\n arrows: {\n settings: true,\n label: 'Include Arrows',\n left: {\n label: 'left'\n },\n right: {\n label: 'right'\n },\n up: {\n label: 'up'\n },\n down: {\n label: 'down'\n }\n },\n graphDimensions: {\n settings: false,\n label: 'Graph Dimensions',\n enabled: true,\n min: 150,\n max: 800,\n step: 20\n },\n padding: {\n settings: false,\n label: 'Padding'\n },\n labels: {\n settings: false,\n label: 'Labels',\n enabled: true\n },\n prompt: {\n settings: true,\n label: 'Item Stem'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type'\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n title: {\n settings: false,\n label: 'Graph Title',\n enabled: true\n },\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n coordinatesOnHover: {\n settings: true,\n label: 'Coordinates on Hover'\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n }\n }\n};\n"],"file":"defaults.js"}
@@ -2,12 +2,12 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
6
 
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports["default"] = exports.GraphingConfig = exports.AuthoringColumn = void 0;
10
+ exports["default"] = exports.GraphingConfig = void 0;
11
11
 
12
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
13
 
@@ -25,134 +25,51 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
25
 
26
26
  var React = _interopRequireWildcard(require("react"));
27
27
 
28
- var _configUi = require("@pie-lib/config-ui");
29
-
30
- var _classnames = _interopRequireDefault(require("classnames"));
31
-
32
28
  var _propTypes = _interopRequireDefault(require("prop-types"));
33
29
 
34
- var _styles = require("@material-ui/core/styles");
35
-
36
30
  var _graphing = require("@pie-lib/graphing");
37
31
 
38
32
  var _core = require("@material-ui/core");
39
33
 
40
- var _lodash = require("lodash");
34
+ var _styles = require("@material-ui/core/styles");
41
35
 
42
- var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
36
+ var _utils = require("./utils");
43
37
 
44
- var _this = void 0;
38
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
45
39
 
46
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
40
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
41
 
48
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
42
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
49
43
 
50
- 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); }; }
44
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
51
45
 
52
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
53
-
54
- var AuthoringColumn = function AuthoringColumn(_ref) {
55
- var columnKey = _ref.columnKey,
56
- axis = _ref.axis,
57
- classes = _ref.classes,
58
- model = _ref.model;
59
- var rows = [{
60
- key: '${columnKey}-min-max',
61
- inputs: [{
62
- key: "".concat(columnKey, ".min"),
63
- label: 'Min value',
64
- className: classes.smallInput
65
- }, {
66
- key: "".concat(columnKey, ".max"),
67
- label: 'Max value',
68
- className: classes.smallInput
69
- }]
70
- }, {
71
- key: "".concat(columnKey, "-tick-frequency"),
72
- inputs: [{
73
- key: "".concat(columnKey, ".step"),
74
- label: 'Tick frequency'
75
- }]
76
- }, {
77
- key: "".concat(columnKey, "-tick-label-frequency"),
78
- inputs: [{
79
- key: "".concat(columnKey, ".labelStep"),
80
- label: 'Tick label frequency'
81
- }]
82
- }, {
83
- key: "".concat(columnKey, "-axis-label"),
84
- inputs: [{
85
- type: 'text',
86
- key: "".concat(axis, "-axis-label-input"),
87
- label: "".concat(axis, " Axis Label")
88
- }]
89
- }];
90
- return /*#__PURE__*/React.createElement("div", {
91
- className: classes.column,
92
- key: columnKey
93
- }, "".concat(columnKey.toUpperCase(), " (").concat(axis.toUpperCase(), ")"), rows.map(function (row) {
94
- return /*#__PURE__*/React.createElement("div", {
95
- className: classes.row,
96
- key: row.key
97
- }, row.inputs.map(function (input) {
98
- if (input.type === 'text') {
99
- return /*#__PURE__*/React.createElement(_core.TextField, {
100
- className: classes.input,
101
- label: input.label.toUpperCase(),
102
- value: model["".concat(axis, "AxisLabel")],
103
- onChange: function onChange(_ref2) {
104
- var target = _ref2.target;
105
- return _this.onChangeInputValue("".concat(axis, "AxisLabel"), target.value);
106
- }
107
- });
108
- }
46
+ 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); }; }
109
47
 
110
- return /*#__PURE__*/React.createElement(_core.TextField, {
111
- type: "number",
112
- key: input.key,
113
- label: input.label.toUpperCase(),
114
- onChange: function onChange(event, value) {
115
- return _this.onChangeInputValue(input.key, value);
116
- },
117
- value: (0, _lodash.get)(model, input.key),
118
- className: input.className || classes.input
119
- });
120
- }));
121
- }));
122
- };
48
+ 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; } }
123
49
 
124
- exports.AuthoringColumn = AuthoringColumn;
125
- AuthoringColumn.propTypes = {
126
- axis: _propTypes["default"].String,
127
- classes: _propTypes["default"].object,
128
- columnKey: _propTypes["default"].String,
129
- model: _propTypes["default"].object
130
- };
50
+ var _tools$allTools = _graphing.tools.allTools,
51
+ allTools = _tools$allTools === void 0 ? [] : _tools$allTools;
131
52
 
132
53
  var styles = function styles(theme) {
133
54
  return {
134
55
  container: {
135
- marginTop: theme.spacing.unit * 3,
136
- marginBottom: theme.spacing.unit * 3,
137
56
  display: 'flex',
138
- flex: 1
139
- },
140
- column: {
141
- flex: 1
142
- },
143
- row: {
144
- marginTop: theme.spacing.unit * 2,
145
- flex: 1
57
+ flexWrap: 'wrap',
58
+ marginBottom: theme.spacing.unit * 7
146
59
  },
147
- settings: {
60
+ gridConfig: {
148
61
  display: 'flex',
149
- flexDirection: 'row'
62
+ flexDirection: 'column',
63
+ marginRight: theme.spacing.unit * 4,
64
+ marginBottom: theme.spacing.unit * 3
150
65
  },
151
- input: {
152
- width: 'calc(100% - 32px)'
66
+ graphConfig: {
67
+ display: 'flex',
68
+ flexDirection: 'column'
153
69
  },
154
- smallInput: {
155
- width: 'calc(50% - 32px)'
70
+ subtitleText: {
71
+ marginTop: theme.spacing.unit * 1.5,
72
+ marginBottom: theme.spacing.unit
156
73
  }
157
74
  };
158
75
  };
@@ -162,100 +79,157 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
162
79
 
163
80
  var _super = _createSuper(GraphingConfig);
164
81
 
165
- function GraphingConfig() {
166
- var _this2;
82
+ function GraphingConfig(props) {
83
+ var _this;
167
84
 
168
85
  (0, _classCallCheck2["default"])(this, GraphingConfig);
86
+ _this = _super.call(this, props);
87
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeBackgroundMarks", function (backgroundMarks) {
88
+ var model = _objectSpread(_objectSpread({}, _this.props.model), {}, {
89
+ backgroundMarks: backgroundMarks
90
+ });
169
91
 
170
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
171
- args[_key] = arguments[_key];
172
- }
92
+ _this.props.onChange(model);
93
+ });
94
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChange", function (config) {
95
+ var _this$props = _this.props,
96
+ model = _this$props.model,
97
+ onChange = _this$props.onChange;
98
+ var _this$state = _this.state,
99
+ oldGridValues = _this$state.gridValues,
100
+ oldLabelValues = _this$state.labelValues;
101
+
102
+ var updatedModel = _objectSpread(_objectSpread({}, model), config);
103
+
104
+ var domain = updatedModel.domain,
105
+ includeAxes = updatedModel.includeAxes,
106
+ graph = updatedModel.graph,
107
+ range = updatedModel.range,
108
+ standardGrid = updatedModel.standardGrid;
109
+ var gridValues = {
110
+ domain: [],
111
+ range: []
112
+ };
113
+ var labelValues = {
114
+ domain: [],
115
+ range: []
116
+ };
117
+
118
+ if (includeAxes) {
119
+ var domainConstraints = (0, _utils.applyConstraints)(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);
120
+ gridValues.domain = domainConstraints.gridValues || [];
121
+ labelValues.domain = domainConstraints.labelValues || [];
122
+ }
173
123
 
174
- _this2 = _super.call.apply(_super, [this].concat(args));
175
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "onChangeInputValue", function (key, value) {
176
- var model = _this2.props.model;
177
- (0, _lodash.set)(model, key, value);
124
+ if (standardGrid) {
125
+ gridValues.range = gridValues.domain;
126
+ labelValues.range = labelValues.domain;
127
+ range.step = domain.step;
128
+ range.labelStep = domain.labelStep;
129
+ } else {
130
+ if (includeAxes) {
131
+ var rangeConstraints = (0, _utils.applyConstraints)(range, graph.height, oldGridValues.range, oldLabelValues.range);
132
+ gridValues.range = rangeConstraints.gridValues || [];
133
+ labelValues.range = rangeConstraints.labelValues || [];
134
+ }
135
+ }
178
136
 
179
- _this2.props.onChange(model);
180
- });
181
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "renderInput", function (key, label, className) {
182
- var _this2$props = _this2.props,
183
- classes = _this2$props.classes,
184
- model = _this2$props.model;
185
- return /*#__PURE__*/React.createElement(_configUi.NumberTextField, {
186
- key: key,
187
- label: label.toUpperCase(),
188
- onChange: function onChange(event, value) {
189
- return _this2.onChangeInputValue(key, value);
190
- },
191
- value: (0, _lodash.get)(model, key),
192
- className: className || classes.input
193
- });
194
- });
195
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "renderRow", function (key, content) {
196
- var classes = _this2.props.classes;
197
- return /*#__PURE__*/React.createElement("div", {
198
- className: classes.row,
199
- key: key
200
- }, content);
201
- });
202
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "changeBackgroundMarks", function (backgroundMarks) {
203
- var model = _objectSpread(_objectSpread({}, _this2.props.model), {}, {
204
- backgroundMarks: backgroundMarks
137
+ _this.setState({
138
+ gridValues: gridValues,
139
+ labelValues: labelValues
205
140
  });
206
141
 
207
- _this2.props.onChange(model);
142
+ onChange(updatedModel);
208
143
  });
209
- return _this2;
144
+
145
+ var _ref = props.model || {},
146
+ _domain = _ref.domain,
147
+ _range = _ref.range,
148
+ _graph = _ref.graph;
149
+
150
+ var _gridValues = {
151
+ domain: (0, _utils.getGridValues)(_domain, _graph.width, true),
152
+ range: (0, _utils.getGridValues)(_range, _graph.height, true)
153
+ };
154
+ var _labelValues = {
155
+ domain: (0, _utils.getLabelValues)(_domain.step),
156
+ range: (0, _utils.getLabelValues)(_range.step)
157
+ };
158
+ _this.state = {
159
+ gridValues: _gridValues,
160
+ labelValues: _labelValues
161
+ };
162
+ return _this;
210
163
  }
211
164
 
212
165
  (0, _createClass2["default"])(GraphingConfig, [{
213
166
  key: "render",
214
167
  value: function render() {
215
- var _this$props = this.props,
216
- classes = _this$props.classes,
217
- model = _this$props.model,
218
- authoringEnabled = _this$props.authoringEnabled;
219
-
220
- var _ref3 = model || {},
221
- graph = _ref3.graph;
222
-
223
- var _ref4 = model || {},
224
- arrows = _ref4.arrows,
225
- backgroundMarks = _ref4.backgroundMarks,
226
- domain = _ref4.domain,
227
- labels = _ref4.labels,
228
- range = _ref4.range,
229
- title = _ref4.title,
230
- toolbarTools = _ref4.toolbarTools;
231
-
232
- graph = graph || {};
233
- return /*#__PURE__*/React.createElement("div", null, "Define Graph Attributes", /*#__PURE__*/React.createElement("div", {
168
+ var _this$props2 = this.props,
169
+ classes = _this$props2.classes,
170
+ model = _this$props2.model,
171
+ graphDimensions = _this$props2.graphDimensions;
172
+
173
+ var _ref2 = model || {},
174
+ arrows = _ref2.arrows,
175
+ backgroundMarks = _ref2.backgroundMarks,
176
+ coordinatesOnHover = _ref2.coordinatesOnHover,
177
+ domain = _ref2.domain,
178
+ includeAxes = _ref2.includeAxes,
179
+ labels = _ref2.labels,
180
+ range = _ref2.range,
181
+ standardGrid = _ref2.standardGrid,
182
+ title = _ref2.title;
183
+
184
+ var graph = (model || {}).graph || {};
185
+
186
+ var _ref3 = graphDimensions || {},
187
+ enabled = _ref3.enabled,
188
+ min = _ref3.min,
189
+ max = _ref3.max,
190
+ step = _ref3.step;
191
+
192
+ var _this$state2 = this.state,
193
+ gridValues = _this$state2.gridValues,
194
+ labelValues = _this$state2.labelValues;
195
+ var sizeConstraints = {
196
+ min: Math.max(150, min),
197
+ max: Math.min(800, max),
198
+ step: step >= 1 ? Math.min(200, step) : 20
199
+ };
200
+ return /*#__PURE__*/React.createElement("div", {
234
201
  className: classes.container
235
- }, authoringEnabled && /*#__PURE__*/React.createElement("div", {
236
- className: (0, _classnames["default"])(classes.column, classes.settings),
237
- key: "settings"
238
- }, /*#__PURE__*/React.createElement(AuthoringColumn, {
239
- columnKey: "domain",
240
- axis: "x",
241
- classes: classes,
242
- model: model
243
- }), /*#__PURE__*/React.createElement(AuthoringColumn, {
244
- columnKey: "range",
245
- axis: "y",
246
- classes: classes,
247
- model: model
202
+ }, /*#__PURE__*/React.createElement("div", {
203
+ className: classes.gridConfig
204
+ }, /*#__PURE__*/React.createElement(_graphing.GridSetup, {
205
+ domain: domain,
206
+ dimensionsEnabled: enabled,
207
+ gridValues: gridValues,
208
+ includeAxes: includeAxes,
209
+ labelValues: labelValues,
210
+ range: range,
211
+ size: graph,
212
+ sizeConstraints: sizeConstraints,
213
+ standardGrid: standardGrid,
214
+ onChange: this.onConfigChange
248
215
  })), /*#__PURE__*/React.createElement("div", {
249
- className: classes.column,
216
+ className: classes.graphConfig,
250
217
  key: "graph"
251
- }, /*#__PURE__*/React.createElement(_Typography["default"], {
218
+ }, /*#__PURE__*/React.createElement(_core.Typography, {
219
+ component: "div",
220
+ variant: "subheading"
221
+ }, /*#__PURE__*/React.createElement("span", null, "Define Graph Attributes")), /*#__PURE__*/React.createElement(_core.Typography, {
252
222
  component: "div",
253
- type: "body1"
254
- }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set background shapes")), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
223
+ variant: "body1",
224
+ className: classes.subtitleText
225
+ }, /*#__PURE__*/React.createElement("span", null, "Use this interface to add/edit a title and/or labels, and to set background shapes")), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
255
226
  axesSettings: {
256
227
  includeArrows: arrows
257
228
  },
258
229
  backgroundMarks: [],
230
+ coordinatesOnHover: coordinatesOnHover,
231
+ collapsibleToolbar: true,
232
+ collapsibleToolbarTitle: 'Add Background Shapes to Graph',
259
233
  domain: domain,
260
234
  key: "graphing-config",
261
235
  labels: labels,
@@ -267,8 +241,8 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
267
241
  height: graph.height
268
242
  },
269
243
  title: title,
270
- toolbarTools: toolbarTools
271
- }))));
244
+ toolbarTools: allTools
245
+ })));
272
246
  }
273
247
  }]);
274
248
  return GraphingConfig;
@@ -277,10 +251,12 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
277
251
  exports.GraphingConfig = GraphingConfig;
278
252
  (0, _defineProperty2["default"])(GraphingConfig, "propTypes", {
279
253
  classes: _propTypes["default"].object.isRequired,
254
+ authoringEnabled: _propTypes["default"].bool,
255
+ graphDimensions: _propTypes["default"].object,
280
256
  model: _propTypes["default"].object.isRequired,
281
- onChange: _propTypes["default"].func.isRequired,
282
- authoringEnabled: _propTypes["default"].bool
257
+ onChange: _propTypes["default"].func.isRequired
283
258
  });
259
+ ;
284
260
 
285
261
  var _default = (0, _styles.withStyles)(styles)(GraphingConfig);
286
262
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphing-config.jsx"],"names":["AuthoringColumn","columnKey","axis","classes","model","rows","key","inputs","label","className","smallInput","type","column","toUpperCase","map","row","input","target","onChangeInputValue","value","event","propTypes","PropTypes","String","object","styles","theme","container","marginTop","spacing","unit","marginBottom","display","flex","settings","flexDirection","width","GraphingConfig","props","onChange","content","backgroundMarks","authoringEnabled","graph","arrows","domain","labels","range","title","toolbarTools","includeArrows","changeBackgroundMarks","height","React","Component","isRequired","func","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { NumberTextField } from '@pie-lib/config-ui';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer } from '@pie-lib/graphing';\nimport { TextField } from '@material-ui/core';\n\nimport { get, set } from 'lodash';\nimport Typography from '@material-ui/core/Typography';\n\nexport const AuthoringColumn = ({ columnKey, axis, classes, model }) => {\n const rows = [{\n key: '${columnKey}-min-max',\n inputs: [\n {\n key: `${columnKey}.min`,\n label: 'Min value',\n className: classes.smallInput\n },\n {\n key: `${columnKey}.max`,\n label: 'Max value',\n className: classes.smallInput\n }\n ]\n }, {\n key: `${columnKey}-tick-frequency`,\n inputs: [\n {\n key: `${columnKey}.step`,\n label: 'Tick frequency'\n }\n ]\n },\n {\n key: `${columnKey}-tick-label-frequency`,\n inputs: [\n {\n key: `${columnKey}.labelStep`,\n label: 'Tick label frequency'\n }\n ]\n },\n {\n key: `${columnKey}-axis-label`,\n inputs: [\n {\n type: 'text',\n key: `${axis}-axis-label-input`,\n label: `${axis} Axis Label`\n }\n ]\n }\n ];\n\n return (\n <div className={classes.column} key={columnKey}>\n {`${columnKey.toUpperCase()} (${axis.toUpperCase()})`}\n\n {rows.map(row => (\n <div className={classes.row} key={row.key}>\n {row.inputs.map(input => {\n if (input.type === 'text') {\n return (\n <TextField\n className={classes.input}\n label={input.label.toUpperCase()}\n value={model[`${axis}AxisLabel`]}\n onChange={({ target }) => this.onChangeInputValue(`${axis}AxisLabel`, target.value)}\n />\n );\n }\n\n return (\n <TextField\n type=\"number\"\n key={input.key}\n label={input.label.toUpperCase()}\n onChange={(event, value) => this.onChangeInputValue(input.key, value)}\n value={get(model, input.key)}\n className={input.className || classes.input}\n />\n );\n })}\n </div>\n ))}\n </div>\n );\n};\n\nAuthoringColumn.propTypes = {\n axis: PropTypes.String,\n classes: PropTypes.object,\n columnKey: PropTypes.String,\n model: PropTypes.object,\n};\n\nconst styles = theme => ({\n container: {\n marginTop: theme.spacing.unit * 3,\n marginBottom: theme.spacing.unit * 3,\n display: 'flex',\n flex: 1,\n },\n column: {\n flex: 1\n },\n row: {\n marginTop: theme.spacing.unit * 2,\n flex: 1\n },\n settings: {\n display: 'flex',\n flexDirection: 'row'\n },\n input: {\n width: 'calc(100% - 32px)'\n },\n smallInput: {\n width: 'calc(50% - 32px)'\n }\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n authoringEnabled: PropTypes.bool,\n };\n\n onChangeInputValue = (key, value) => {\n const { model } = this.props;\n\n set(model, key, value);\n this.props.onChange(model);\n };\n\n renderInput = (key, label, className) => {\n const { classes, model } = this.props;\n\n return (\n <NumberTextField\n key={key}\n label={label.toUpperCase()}\n onChange={(event, value) => this.onChangeInputValue(key, value)}\n value={get(model, key)}\n className={className || classes.input}\n />\n )\n };\n\n renderRow = (key, content) => {\n const { classes } = this.props;\n\n return (\n <div className={classes.row} key={key}>\n {content}\n </div>\n );\n };\n\n changeBackgroundMarks = backgroundMarks => {\n const model = { ...this.props.model, backgroundMarks };\n this.props.onChange(model);\n };\n\n render() {\n const { classes, model, authoringEnabled } = this.props;\n let { graph } = model || {};\n const { arrows, backgroundMarks, domain, labels, range, title, toolbarTools } = model || {};\n graph = graph || {};\n\n return (\n <div>\n Define Graph Attributes\n\n <div className={classes.container}>\n {\n authoringEnabled && (\n <div className={classnames(classes.column, classes.settings)} key=\"settings\">\n <AuthoringColumn columnKey=\"domain\" axis=\"x\" classes={classes} model={model} />\n <AuthoringColumn columnKey=\"range\" axis=\"y\" classes={classes} model={model} />\n </div>\n )\n }\n\n <div className={classes.column} key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to set background shapes</span>\n </Typography>\n\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n domain={domain}\n key=\"graphing-config\"\n labels={labels}\n marks={backgroundMarks}\n onChangeMarks={this.changeBackgroundMarks}\n range={range}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={toolbarTools}\n />\n </div>\n\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
1
+ {"version":3,"sources":["../src/graphing-config.jsx"],"names":["tools","allTools","styles","theme","container","display","flexWrap","marginBottom","spacing","unit","gridConfig","flexDirection","marginRight","graphConfig","subtitleText","marginTop","GraphingConfig","props","backgroundMarks","model","onChange","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","domain","includeAxes","graph","range","standardGrid","domainConstraints","width","step","labelStep","rangeConstraints","height","setState","classes","graphDimensions","arrows","coordinatesOnHover","labels","title","enabled","min","max","sizeConstraints","Math","onConfigChange","includeArrows","changeBackgroundMarks","React","Component","PropTypes","object","isRequired","authoringEnabled","bool","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphContainer, GridSetup, tools } from '@pie-lib/graphing';\nimport { Typography } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils';\n\nconst { allTools = [] } = tools;\n\nconst styles = theme => ({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: theme.spacing.unit * 7\n },\n gridConfig: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: theme.spacing.unit * 4,\n marginBottom: theme.spacing.unit * 3\n },\n graphConfig: {\n display: 'flex',\n flexDirection: 'column'\n },\n subtitleText: {\n marginTop: theme.spacing.unit * 1.5,\n marginBottom: theme.spacing.unit\n }\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n authoringEnabled: PropTypes.bool,\n graphDimensions: PropTypes.object,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { domain, range, graph } = props.model || {};\n\n const gridValues = {\n domain: getGridValues(domain, graph.width, true),\n range: getGridValues(range, graph.height, true)\n };\n const labelValues = {\n domain: getLabelValues(domain.step),\n range: getLabelValues(range.step)\n };\n\n this.state = { gridValues, labelValues };\n };\n\n changeBackgroundMarks = backgroundMarks => {\n const model = { ...this.props.model, backgroundMarks };\n\n this.props.onChange(model);\n };\n\n onConfigChange = config => {\n const { model, onChange } = this.props;\n const { gridValues: oldGridValues, labelValues: oldLabelValues } = this.state;\n const updatedModel = { ...model, ...config };\n const { domain, includeAxes, graph, range, standardGrid } = updatedModel;\n const gridValues = { domain: [], range: [] };\n const labelValues = { domain: [], range: [] };\n\n if (includeAxes) {\n const domainConstraints = applyConstraints(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);\n\n gridValues.domain = domainConstraints.gridValues || [];\n labelValues.domain = domainConstraints.labelValues || [];\n }\n\n if (standardGrid) {\n gridValues.range = gridValues.domain;\n labelValues.range = labelValues.domain;\n range.step = domain.step;\n range.labelStep = domain.labelStep;\n } else {\n if (includeAxes) {\n const rangeConstraints = applyConstraints(range, graph.height, oldGridValues.range, oldLabelValues.range);\n\n gridValues.range = rangeConstraints.gridValues || [];\n labelValues.range = rangeConstraints.labelValues || [];\n }\n }\n\n this.setState({ gridValues, labelValues });\n onChange(updatedModel);\n };\n\n render() {\n const { classes, model, graphDimensions } = this.props;\n const {\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n domain,\n includeAxes,\n labels,\n range,\n standardGrid,\n title\n } = model || {};\n const graph = (model || {}).graph || {};\n const { enabled, min, max, step } = graphDimensions || {};\n const { gridValues, labelValues } = this.state;\n\n const sizeConstraints = {\n min: Math.max(150, min),\n max: Math.min(800, max),\n step: step >= 1 ? Math.min(200, step) : 20\n };\n\n return (\n <div className={classes.container}>\n <div className={classes.gridConfig}>\n <GridSetup\n domain={domain}\n dimensionsEnabled={enabled}\n gridValues={gridValues}\n includeAxes={includeAxes}\n labelValues={labelValues}\n range={range}\n size={graph}\n sizeConstraints={sizeConstraints}\n standardGrid={standardGrid}\n onChange={this.onConfigChange}\n />\n </div>\n\n <div className={classes.graphConfig} key=\"graph\">\n <Typography component=\"div\" variant=\"subheading\">\n <span>Define Graph Attributes</span>\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.subtitleText}>\n <span>Use this interface to add/edit a title and/or labels, and to set background shapes</span>\n </Typography>\n\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n collapsibleToolbar={true}\n collapsibleToolbarTitle={'Add Background Shapes to Graph'}\n domain={domain}\n key=\"graphing-config\"\n labels={labels}\n marks={backgroundMarks}\n onChangeMarks={this.changeBackgroundMarks}\n range={range}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={allTools}\n />\n </div>\n </div>\n );\n }\n};\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
@@ -35,23 +35,22 @@ var _debug = _interopRequireDefault(require("debug"));
35
35
 
36
36
  var _defaults = _interopRequireDefault(require("./defaults"));
37
37
 
38
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
38
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
39
 
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
41
-
42
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
40
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
43
41
 
44
42
  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); }; }
45
43
 
46
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
44
+ 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; } }
47
45
 
48
- var log = (0, _debug["default"])('pie-elements:graphing:configure');
46
+ var log = (0, _debug["default"])('pie-elements:graphing:configure'); // this function is implemented in controller as well
49
47
 
50
- // this function is implemented in controller as well
51
48
  var sortedAnswers = function sortedAnswers(answers) {
52
- answers = answers || {};
53
- return Object.keys(answers).sort().reduce(function (result, key) {
54
- result[key] = answers[key];
49
+ return Object.keys(answers || {}).sort().reduce(function (result, key) {
50
+ if (key !== 'correctAnswer') {
51
+ result[key] = answers[key];
52
+ }
53
+
55
54
  return result;
56
55
  }, {});
57
56
  };
@@ -73,7 +72,7 @@ var GraphLinesConfigure = /*#__PURE__*/function (_HTMLElement) {
73
72
 
74
73
  log('[onModelChanged]: ', _this._model);
75
74
 
76
- _this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(_this._model, true));
75
+ _this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(_this._model));
77
76
  });
78
77
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (config) {
79
78
  _this._configuration = config;
@@ -131,12 +130,38 @@ exports["default"] = GraphLinesConfigure;
131
130
  (0, _defineProperty2["default"])(GraphLinesConfigure, "createDefaultModel", function () {
132
131
  var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
133
132
 
134
- if (!(0, _isEmpty["default"])(model.answers) && model.answers.hasOwnProperty('correctAnswer')) {
135
- model.answers = Object.assign({
136
- correctAnswer: model.answers.correctAnswer
137
- }, sortedAnswers(model.answers));
138
- }
139
-
140
- return _objectSpread(_objectSpread({}, _defaults["default"].model), model);
133
+ var normalizedModel = _objectSpread(_objectSpread({}, _defaults["default"].model), model);
134
+
135
+ var _normalizedModel$answ = normalizedModel.answers,
136
+ answers = _normalizedModel$answ === void 0 ? {} : _normalizedModel$answ,
137
+ _normalizedModel$doma = normalizedModel.domain,
138
+ domain = _normalizedModel$doma === void 0 ? {} : _normalizedModel$doma,
139
+ defaultTool = normalizedModel.defaultTool,
140
+ _normalizedModel$grap = normalizedModel.graph,
141
+ graph = _normalizedModel$grap === void 0 ? {} : _normalizedModel$grap,
142
+ _normalizedModel$rang = normalizedModel.range,
143
+ range = _normalizedModel$rang === void 0 ? {} : _normalizedModel$rang,
144
+ standardGrid = normalizedModel.standardGrid,
145
+ toolbarTools = normalizedModel.toolbarTools; // added support for models without defaultTool defined; also used in packages/graphing/controller/src/index.js
146
+
147
+ var toolbarToolsNoLabel = (toolbarTools || []).filter(function (tool) {
148
+ return tool !== 'label';
149
+ });
150
+ var normalizedDefaultTool = defaultTool || toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';
151
+ return _objectSpread(_objectSpread({}, normalizedModel), {}, {
152
+ answers: answers && answers.correctAnswer && _objectSpread({
153
+ correctAnswer: answers.correctAnswer
154
+ }, sortedAnswers(answers)) || answers,
155
+ defaultTool: normalizedDefaultTool,
156
+ range: standardGrid && _objectSpread(_objectSpread({}, range), {}, {
157
+ min: domain.min,
158
+ max: domain.max,
159
+ step: domain.step,
160
+ labelStep: domain.labelStep
161
+ }) || range,
162
+ graph: standardGrid && _objectSpread(_objectSpread({}, graph), {}, {
163
+ height: graph.width
164
+ }) || graph
165
+ });
141
166
  });
142
167
  //# sourceMappingURL=index.js.map