@pie-lib/graphing 2.4.9 → 2.4.12

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 (92) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/lib/axis/arrow.js +17 -13
  3. package/lib/axis/arrow.js.map +1 -1
  4. package/lib/axis/axes.js +57 -51
  5. package/lib/axis/axes.js.map +1 -1
  6. package/lib/axis/index.js +5 -1
  7. package/lib/axis/index.js.map +1 -1
  8. package/lib/bg.js +16 -14
  9. package/lib/bg.js.map +1 -1
  10. package/lib/container/index.js +21 -15
  11. package/lib/container/index.js.map +1 -1
  12. package/lib/coordinates-label.js +4 -4
  13. package/lib/coordinates-label.js.map +1 -1
  14. package/lib/graph-with-controls.js +29 -25
  15. package/lib/graph-with-controls.js.map +1 -1
  16. package/lib/graph.js +56 -42
  17. package/lib/graph.js.map +1 -1
  18. package/lib/grid.js +20 -14
  19. package/lib/grid.js.map +1 -1
  20. package/lib/index.js +5 -1
  21. package/lib/index.js.map +1 -1
  22. package/lib/labels.js +28 -24
  23. package/lib/labels.js.map +1 -1
  24. package/lib/mark-label.js +16 -8
  25. package/lib/mark-label.js.map +1 -1
  26. package/lib/toggle-bar.js +18 -16
  27. package/lib/toggle-bar.js.map +1 -1
  28. package/lib/tool-menu.js +22 -16
  29. package/lib/tool-menu.js.map +1 -1
  30. package/lib/tools/circle/bg-circle.js +26 -18
  31. package/lib/tools/circle/bg-circle.js.map +1 -1
  32. package/lib/tools/circle/component.js +30 -28
  33. package/lib/tools/circle/component.js.map +1 -1
  34. package/lib/tools/circle/index.js +4 -4
  35. package/lib/tools/circle/index.js.map +1 -1
  36. package/lib/tools/index.js +16 -15
  37. package/lib/tools/index.js.map +1 -1
  38. package/lib/tools/line/component.js +12 -6
  39. package/lib/tools/line/component.js.map +1 -1
  40. package/lib/tools/parabola/component.js.map +1 -1
  41. package/lib/tools/parabola/index.js +4 -4
  42. package/lib/tools/parabola/index.js.map +1 -1
  43. package/lib/tools/point/component.js +21 -17
  44. package/lib/tools/point/component.js.map +1 -1
  45. package/lib/tools/point/index.js +2 -2
  46. package/lib/tools/polygon/component.js +55 -47
  47. package/lib/tools/polygon/component.js.map +1 -1
  48. package/lib/tools/polygon/index.js +12 -8
  49. package/lib/tools/polygon/index.js.map +1 -1
  50. package/lib/tools/polygon/line.js +26 -18
  51. package/lib/tools/polygon/line.js.map +1 -1
  52. package/lib/tools/polygon/polygon.js +26 -18
  53. package/lib/tools/polygon/polygon.js.map +1 -1
  54. package/lib/tools/ray/component.js +12 -6
  55. package/lib/tools/ray/component.js.map +1 -1
  56. package/lib/tools/segment/component.js +4 -2
  57. package/lib/tools/segment/component.js.map +1 -1
  58. package/lib/tools/shared/arrow-head.js +4 -4
  59. package/lib/tools/shared/arrow-head.js.map +1 -1
  60. package/lib/tools/shared/line/index.js +46 -44
  61. package/lib/tools/shared/line/index.js.map +1 -1
  62. package/lib/tools/shared/line/line-path.js +28 -20
  63. package/lib/tools/shared/line/line-path.js.map +1 -1
  64. package/lib/tools/shared/line/with-root-edge.js +8 -6
  65. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  66. package/lib/tools/shared/point/arrow-point.js +21 -15
  67. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  68. package/lib/tools/shared/point/arrow.js +22 -50
  69. package/lib/tools/shared/point/arrow.js.map +1 -1
  70. package/lib/tools/shared/point/base-point.js +22 -16
  71. package/lib/tools/shared/point/base-point.js.map +1 -1
  72. package/lib/tools/shared/point/index.js +8 -4
  73. package/lib/tools/shared/point/index.js.map +1 -1
  74. package/lib/tools/shared/styles.js +1 -1
  75. package/lib/tools/shared/types.js +1 -1
  76. package/lib/tools/sine/component.js.map +1 -1
  77. package/lib/tools/sine/index.js +4 -4
  78. package/lib/tools/sine/index.js.map +1 -1
  79. package/lib/tools/vector/component.js +21 -8
  80. package/lib/tools/vector/component.js.map +1 -1
  81. package/lib/undo-redo.js +20 -16
  82. package/lib/undo-redo.js.map +1 -1
  83. package/lib/use-debounce.js +7 -3
  84. package/lib/use-debounce.js.map +1 -1
  85. package/lib/utils.js +70 -5
  86. package/lib/utils.js.map +1 -1
  87. package/package.json +4 -4
  88. package/src/axis/axes.jsx +1 -1
  89. package/src/graph.jsx +13 -6
  90. package/src/tools/shared/point/arrow.jsx +1 -30
  91. package/src/tools/vector/component.jsx +20 -6
  92. package/src/utils.js +62 -4
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -23,46 +25,48 @@ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
23
25
 
24
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
27
 
26
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
27
-
28
28
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
29
29
 
30
- 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; }
30
+ 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; }
31
31
 
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
32
+ 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) { _defineProperty(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; }
33
33
 
34
34
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
35
35
 
36
36
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
37
37
 
38
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
38
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
39
39
 
40
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
40
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
41
41
 
42
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
42
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
43
+
44
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
45
+
46
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
43
47
 
44
48
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
45
49
 
46
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
50
+ 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
51
 
48
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
52
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
49
53
 
50
54
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
51
55
 
52
- var Point =
53
- /*#__PURE__*/
54
- function (_React$Component) {
56
+ var Point = /*#__PURE__*/function (_React$Component) {
55
57
  _inherits(Point, _React$Component);
56
58
 
59
+ var _super = _createSuper(Point);
60
+
57
61
  function Point(props) {
58
62
  var _this;
59
63
 
60
64
  _classCallCheck(this, Point);
61
65
 
62
- _this = _possibleConstructorReturn(this, _getPrototypeOf(Point).call(this, props));
66
+ _this = _super.call(this, props);
63
67
 
64
68
  _defineProperty(_assertThisInitialized(_this), "move", function (p) {
65
- var mark = _objectSpread({}, _this.state.mark, {}, p);
69
+ var mark = _objectSpread(_objectSpread({}, _this.state.mark), p);
66
70
 
67
71
  _this.setState({
68
72
  mark: mark
@@ -98,7 +102,7 @@ function (_React$Component) {
98
102
  _defineProperty(_assertThisInitialized(_this), "labelChange", function (label) {
99
103
  var onChange = _this.props.onChange;
100
104
 
101
- var update = _objectSpread({}, _this.props.mark, {
105
+ var update = _objectSpread(_objectSpread({}, _this.props.mark), {}, {
102
106
  label: label
103
107
  });
104
108
 
@@ -148,7 +152,7 @@ function (_React$Component) {
148
152
  labelNode = _this$props2.labelNode,
149
153
  labelModeEnabled = _this$props2.labelModeEnabled;
150
154
  var mark = this.state.mark ? this.state.mark : this.props.mark;
151
- return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_point.BasePoint, _extends({}, mark, {
155
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_point.BasePoint, _extends({}, mark, {
152
156
  coordinatesOnHover: coordinatesOnHover,
153
157
  graphProps: graphProps,
154
158
  labelNode: labelNode,
@@ -156,7 +160,7 @@ function (_React$Component) {
156
160
  onDragStart: this.startDrag,
157
161
  onDragStop: this.stopDrag,
158
162
  onClick: this.clickPoint
159
- })), labelNode && mark.hasOwnProperty('label') && _reactDom["default"].createPortal(_react["default"].createElement(_markLabel["default"], {
163
+ })), labelNode && mark.hasOwnProperty('label') && /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
160
164
  inputRef: function inputRef(r) {
161
165
  return _this2.input = r;
162
166
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/point/component.jsx"],"names":["Point","props","p","mark","state","setState","update","label","onChange","undefined","labelModeEnabled","onClick","input","focus","coordinatesOnHover","graphProps","labelNode","move","startDrag","stopDrag","clickPoint","hasOwnProperty","ReactDOM","createPortal","r","labelChange","React","Component","types","GraphPropsType","isRequired","ToolPropTypeFields"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { BasePoint } from '../shared/point';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { types } from '@pie-lib/plot';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\nexport class Point extends React.Component {\n static propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n ...ToolPropTypeFields\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n move = p => {\n const mark = { ...this.state.mark, ...p };\n this.setState({ mark });\n };\n\n startDrag = () => {\n const update = { ...this.props.mark };\n\n if (update.label === '') {\n delete update.label;\n }\n this.setState({ mark: update });\n };\n\n stopDrag = () => {\n const { onChange } = this.props;\n const mark = { ...this.state.mark };\n this.setState({ mark: undefined }, () => {\n if (!isEqual(this.props.mark, mark)) {\n onChange(this.props.mark, mark);\n }\n });\n };\n\n labelChange = label => {\n const { onChange } = this.props;\n const update = { ...this.props.mark, label };\n\n if (!label || isEmpty(label)) {\n delete update.label;\n }\n\n this.setState({ mark: update }, () => {\n onChange(this.props.mark, update);\n });\n };\n\n clickPoint = () => {\n const { labelModeEnabled, onChange, onClick, mark } = this.props;\n\n if (labelModeEnabled) {\n onChange(mark, { label: '', ...mark });\n if (this.input) {\n this.input.focus();\n }\n } else {\n onClick(mark);\n }\n };\n\n render() {\n const { coordinatesOnHover, graphProps, labelNode, labelModeEnabled } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n return (\n <React.Fragment>\n <BasePoint\n {...mark}\n coordinatesOnHover={coordinatesOnHover}\n graphProps={graphProps}\n labelNode={labelNode}\n onDrag={this.move}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n onClick={this.clickPoint}\n />\n {labelNode &&\n mark.hasOwnProperty('label') &&\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={r => (this.input = r)}\n disabled={!labelModeEnabled}\n mark={mark}\n graphProps={graphProps}\n onChange={this.labelChange}\n />,\n labelNode\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default Point;\n"],"file":"component.js"}
1
+ {"version":3,"sources":["../../../src/tools/point/component.jsx"],"names":["Point","props","p","mark","state","setState","update","label","onChange","undefined","labelModeEnabled","onClick","input","focus","coordinatesOnHover","graphProps","labelNode","move","startDrag","stopDrag","clickPoint","hasOwnProperty","ReactDOM","createPortal","r","labelChange","React","Component","types","GraphPropsType","isRequired","ToolPropTypeFields"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { BasePoint } from '../shared/point';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { types } from '@pie-lib/plot';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\nexport class Point extends React.Component {\n static propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n ...ToolPropTypeFields\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n move = p => {\n const mark = { ...this.state.mark, ...p };\n this.setState({ mark });\n };\n\n startDrag = () => {\n const update = { ...this.props.mark };\n\n if (update.label === '') {\n delete update.label;\n }\n this.setState({ mark: update });\n };\n\n stopDrag = () => {\n const { onChange } = this.props;\n const mark = { ...this.state.mark };\n this.setState({ mark: undefined }, () => {\n if (!isEqual(this.props.mark, mark)) {\n onChange(this.props.mark, mark);\n }\n });\n };\n\n labelChange = label => {\n const { onChange } = this.props;\n const update = { ...this.props.mark, label };\n\n if (!label || isEmpty(label)) {\n delete update.label;\n }\n\n this.setState({ mark: update }, () => {\n onChange(this.props.mark, update);\n });\n };\n\n clickPoint = () => {\n const { labelModeEnabled, onChange, onClick, mark } = this.props;\n\n if (labelModeEnabled) {\n onChange(mark, { label: '', ...mark });\n if (this.input) {\n this.input.focus();\n }\n } else {\n onClick(mark);\n }\n };\n\n render() {\n const { coordinatesOnHover, graphProps, labelNode, labelModeEnabled } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n return (\n <React.Fragment>\n <BasePoint\n {...mark}\n coordinatesOnHover={coordinatesOnHover}\n graphProps={graphProps}\n labelNode={labelNode}\n onDrag={this.move}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n onClick={this.clickPoint}\n />\n {labelNode &&\n mark.hasOwnProperty('label') &&\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={r => (this.input = r)}\n disabled={!labelModeEnabled}\n mark={mark}\n graphProps={graphProps}\n onChange={this.labelChange}\n />,\n labelNode\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default Point;\n"],"file":"component.js"}
@@ -9,9 +9,9 @@ var _component = _interopRequireDefault(require("./component"));
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
12
- 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; }
12
+ 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; }
13
13
 
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14
+ 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) { _defineProperty(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; }
15
15
 
16
16
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
17
 
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports["default"] = exports.BaseComponent = exports.RawBaseComponent = exports.swap = exports.buildLines = void 0;
8
+ exports.swap = exports["default"] = exports.buildLines = exports.RawBaseComponent = exports.BaseComponent = void 0;
7
9
 
8
10
  var _react = _interopRequireDefault(require("react"));
9
11
 
@@ -39,11 +41,11 @@ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
39
41
 
40
42
  var _utils = require("../../utils");
41
43
 
42
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
44
+ 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); }
43
45
 
44
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
46
+ 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; }
45
47
 
46
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
48
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
47
49
 
48
50
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
49
51
 
@@ -51,37 +53,45 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
51
53
 
52
54
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
53
55
 
54
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
56
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
55
57
 
56
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
58
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
57
59
 
58
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
60
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
61
+
62
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
63
+
64
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
59
65
 
60
66
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
61
67
 
62
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
68
+ 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; } }
63
69
 
64
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
70
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
71
+
72
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
73
+
74
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
65
75
 
66
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
76
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
67
77
 
68
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
78
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
69
79
 
70
- function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
80
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
71
81
 
72
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
82
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
73
83
 
74
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
84
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
75
85
 
76
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
86
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
77
87
 
78
- function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
88
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
79
89
 
80
90
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
81
91
 
82
- 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; }
92
+ 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; }
83
93
 
84
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
94
+ 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) { _defineProperty(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; }
85
95
 
86
96
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
87
97
 
@@ -89,12 +99,12 @@ var log = (0, _debug["default"])('pie-lib:graphing:polygon');
89
99
 
90
100
  var buildLines = function buildLines(points, closed) {
91
101
  var expanded = points.reduce(function (acc, p, index) {
92
- acc.push(_objectSpread({}, p, {
102
+ acc.push(_objectSpread(_objectSpread({}, p), {}, {
93
103
  index: index
94
104
  }));
95
105
  var isLast = index === points.length - 1;
96
106
  var next = isLast ? 0 : index + 1;
97
- acc.push(_objectSpread({}, points[next], {
107
+ acc.push(_objectSpread(_objectSpread({}, points[next]), {}, {
98
108
  index: next
99
109
  }));
100
110
  return acc;
@@ -143,14 +153,12 @@ var swap = function swap(arr) {
143
153
 
144
154
  exports.swap = swap;
145
155
 
146
- var RawBaseComponent =
147
- /*#__PURE__*/
148
- function (_React$Component) {
156
+ var RawBaseComponent = /*#__PURE__*/function (_React$Component) {
149
157
  _inherits(RawBaseComponent, _React$Component);
150
158
 
151
- function RawBaseComponent() {
152
- var _getPrototypeOf2;
159
+ var _super = _createSuper(RawBaseComponent);
153
160
 
161
+ function RawBaseComponent() {
154
162
  var _this;
155
163
 
156
164
  _classCallCheck(this, RawBaseComponent);
@@ -159,7 +167,7 @@ function (_React$Component) {
159
167
  args[_key2] = arguments[_key2];
160
168
  }
161
169
 
162
- _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(RawBaseComponent)).call.apply(_getPrototypeOf2, [this].concat(args)));
170
+ _this = _super.call.apply(_super, [this].concat(args));
163
171
 
164
172
  _defineProperty(_assertThisInitialized(_this), "dragPoint", function (index, from, to) {
165
173
  log('[dragPoint] from, to:', from, to);
@@ -258,9 +266,9 @@ function (_React$Component) {
258
266
  a = _getRightestPoints.a,
259
267
  b = _getRightestPoints.b;
260
268
 
261
- var middle = _objectSpread({
269
+ var middle = _objectSpread(_objectSpread({
262
270
  label: ''
263
- }, point, {}, (0, _utils.getMiddleOfTwoPoints)(a, b));
271
+ }, point), (0, _utils.getMiddleOfTwoPoints)(a, b));
264
272
 
265
273
  onChangeLabelProps(middle);
266
274
  } else {
@@ -318,7 +326,7 @@ function (_React$Component) {
318
326
  var polygonLabelNode = null;
319
327
 
320
328
  if (labelNode && middle && middle.hasOwnProperty('label')) {
321
- polygonLabelNode = _reactDom["default"].createPortal(_react["default"].createElement(_markLabel["default"], {
329
+ polygonLabelNode = /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
322
330
  inputRef: function inputRef(r) {
323
331
  return _this2.input[polygonLabelIndex] = r;
324
332
  },
@@ -329,18 +337,18 @@ function (_React$Component) {
329
337
  }), labelNode);
330
338
  }
331
339
 
332
- return _react["default"].createElement("g", null, closed ? _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_polygon["default"], _extends({
340
+ return /*#__PURE__*/_react["default"].createElement("g", null, closed ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_polygon["default"], _extends({
333
341
  points: points,
334
342
  onDrag: this.dragPoly.bind(this, points),
335
343
  closed: closed
336
344
  }, common, {
337
345
  onClick: this.clickPoint.bind(this, middle, polygonLabelIndex)
338
- })), polygonLabelNode) : _react["default"].createElement(_polygon.Polygon, {
346
+ })), polygonLabelNode) : /*#__PURE__*/_react["default"].createElement(_polygon.Polygon, {
339
347
  points: points,
340
348
  graphProps: graphProps,
341
349
  closed: closed
342
350
  }), (lines || []).map(function (l, index) {
343
- return _react["default"].createElement(_line["default"], _extends({
351
+ return /*#__PURE__*/_react["default"].createElement(_line["default"], _extends({
344
352
  key: "line-".concat(index),
345
353
  from: l.from,
346
354
  to: l.to,
@@ -349,7 +357,7 @@ function (_React$Component) {
349
357
  onClick: _this2.clickPoint.bind(_this2, middle, polygonLabelIndex)
350
358
  }));
351
359
  }), (points || []).map(function (p, index) {
352
- return [_react["default"].createElement(_point.BasePoint, _extends({
360
+ return [/*#__PURE__*/_react["default"].createElement(_point.BasePoint, _extends({
353
361
  key: "point-".concat(index),
354
362
  coordinatesOnHover: coordinatesOnHover,
355
363
  labelNode: labelNode,
@@ -357,7 +365,7 @@ function (_React$Component) {
357
365
  y: p.y,
358
366
  onDrag: _this2.dragPoint.bind(_this2, index, p),
359
367
  onClick: _this2.clickPoint.bind(_this2, p, index)
360
- }, common)), labelNode && p.hasOwnProperty('label') ? _reactDom["default"].createPortal(_react["default"].createElement(_markLabel["default"], {
368
+ }, common)), labelNode && p.hasOwnProperty('label') ? /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
361
369
  inputRef: function inputRef(r) {
362
370
  return _this2.input[index] = r;
363
371
  },
@@ -365,7 +373,7 @@ function (_React$Component) {
365
373
  mark: p,
366
374
  graphProps: graphProps,
367
375
  onChange: function onChange(label) {
368
- return _this2.labelChange(_objectSpread({}, p, {
376
+ return _this2.labelChange(_objectSpread(_objectSpread({}, p), {}, {
369
377
  label: label
370
378
  }), index);
371
379
  }
@@ -409,22 +417,22 @@ var BaseComponent = (0, _styles.withStyles)(function () {
409
417
  })(RawBaseComponent);
410
418
  exports.BaseComponent = BaseComponent;
411
419
 
412
- var Component =
413
- /*#__PURE__*/
414
- function (_React$Component2) {
420
+ var Component = /*#__PURE__*/function (_React$Component2) {
415
421
  _inherits(Component, _React$Component2);
416
422
 
423
+ var _super2 = _createSuper(Component);
424
+
417
425
  function Component(props) {
418
426
  var _this3;
419
427
 
420
428
  _classCallCheck(this, Component);
421
429
 
422
- _this3 = _possibleConstructorReturn(this, _getPrototypeOf(Component).call(this, props));
430
+ _this3 = _super2.call(this, props);
423
431
 
424
432
  _defineProperty(_assertThisInitialized(_this3), "change", function (points) {
425
433
  var middle = _this3.props.mark.middle;
426
434
 
427
- var mark = _objectSpread({}, _this3.state.mark, {
435
+ var mark = _objectSpread(_objectSpread({}, _this3.state.mark), {}, {
428
436
  points: points
429
437
  });
430
438
 
@@ -433,7 +441,7 @@ function (_React$Component2) {
433
441
  a = _getRightestPoints2.a,
434
442
  b = _getRightestPoints2.b;
435
443
 
436
- mark.middle = _objectSpread({}, middle, {}, (0, _utils.getMiddleOfTwoPoints)(a, b));
444
+ mark.middle = _objectSpread(_objectSpread({}, middle), (0, _utils.getMiddleOfTwoPoints)(a, b));
437
445
  }
438
446
 
439
447
  _this3.setState({
@@ -442,7 +450,7 @@ function (_React$Component2) {
442
450
  });
443
451
 
444
452
  _defineProperty(_assertThisInitialized(_this3), "changeProps", function (points) {
445
- var mark = _objectSpread({}, _this3.props.mark, {
453
+ var mark = _objectSpread(_objectSpread({}, _this3.props.mark), {}, {
446
454
  points: points
447
455
  });
448
456
 
@@ -454,9 +462,9 @@ function (_React$Component2) {
454
462
  mark = _this3$props.mark,
455
463
  onChange = _this3$props.onChange;
456
464
 
457
- var middle = _objectSpread({}, mark.middle, {}, point);
465
+ var middle = _objectSpread(_objectSpread({}, mark.middle), point);
458
466
 
459
- onChange(mark, _objectSpread({}, mark, {
467
+ onChange(mark, _objectSpread(_objectSpread({}, mark), {}, {
460
468
  middle: middle
461
469
  }));
462
470
  });
@@ -467,7 +475,7 @@ function (_React$Component2) {
467
475
  onComplete = _this3$props2.onComplete,
468
476
  mark = _this3$props2.mark;
469
477
 
470
- var update = _objectSpread({}, mark, {
478
+ var update = _objectSpread(_objectSpread({}, mark), {}, {
471
479
  closed: true
472
480
  });
473
481
 
@@ -517,7 +525,7 @@ function (_React$Component2) {
517
525
  labelNode = _this$props6.labelNode,
518
526
  labelModeEnabled = _this$props6.labelModeEnabled;
519
527
  var stateMark = this.state.mark;
520
- return _react["default"].createElement(BaseComponent, _extends({}, stateMark || mark, {
528
+ return /*#__PURE__*/_react["default"].createElement(BaseComponent, _extends({}, stateMark || mark, {
521
529
  coordinatesOnHover: coordinatesOnHover,
522
530
  onChange: this.change,
523
531
  onChangeLabelProps: this.changeLabelProps,
@@ -539,7 +547,7 @@ function (_React$Component2) {
539
547
 
540
548
  exports["default"] = Component;
541
549
 
542
- _defineProperty(Component, "propTypes", _objectSpread({}, _types.ToolPropTypeFields, {
550
+ _defineProperty(Component, "propTypes", _objectSpread(_objectSpread({}, _types.ToolPropTypeFields), {}, {
543
551
  graphProps: _plot.types.GraphPropsType.isRequired
544
552
  }));
545
553
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/polygon/component.jsx"],"names":["log","buildLines","points","closed","expanded","reduce","acc","p","index","push","isLast","length","next","all","map","from","to","swap","arr","rest","pairs","pr","e","replacement","Number","isFinite","splice","RawBaseComponent","props","onChange","update","overlapPoint","find","label","existing","forEach","point","onClosePolygon","onChangeProps","updatedPoint","data","onClick","isToolActive","labelModeEnabled","onChangeLabelProps","a","b","middle","input","focus","close","coordinatesOnHover","correctness","disabled","graphProps","onDragStart","onDragStop","labelNode","lines","common","polygonLabelIndex","polygonLabelNode","hasOwnProperty","ReactDOM","createPortal","r","dragPoly","bind","clickPoint","l","dragLine","x","y","dragPoint","labelChange","React","Component","classes","PropTypes","object","className","string","bool","arrayOf","types","PointType","func","isRequired","GraphPropsType","BaseComponent","mark","state","setState","onComplete","m","undefined","nextProps","nextState","nextGraphProps","utils","isDomainRangeEqual","stateMark","change","changeLabelProps","changeProps","closePolygon","dragStart","dragStop","ToolPropTypeFields"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { BasePoint } from '../shared/point';\nimport chunk from 'lodash/chunk';\nimport initial from 'lodash/initial';\nimport isEqual from 'lodash/isEqual';\nimport debug from 'debug';\nimport Line from './line';\nimport DraggablePolygon, { Polygon } from './polygon';\nimport { types, utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { getMiddleOfTwoPoints, getRightestPoints, equalPoints } from '../../utils';\n\nconst log = debug('pie-lib:graphing:polygon');\n\nexport const buildLines = (points, closed) => {\n const expanded = points.reduce((acc, p, index) => {\n acc.push({ ...p, index });\n const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n acc.push({ ...points[next], index: next });\n return acc;\n }, []);\n\n const all = chunk(expanded, 2).map(([from, to]) => {\n return { from, to };\n });\n\n return closed ? all : initial(all);\n};\n\nexport const swap = (arr, ...rest) => {\n const pairs = chunk(rest, 2);\n return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n invariant(Number.isFinite(e.index), 'Index must be defined');\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n if (index >= 0) {\n acc.splice(index, 1, replacement);\n return acc;\n } else {\n return acc;\n }\n } else {\n return acc;\n }\n },\n [...arr]\n );\n};\n\nexport class RawBaseComponent extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n points: PropTypes.arrayOf(types.PointType),\n closed: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClosePolygon: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n isToolActive: PropTypes.bool,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n onChangeLabelProps: PropTypes.func,\n onChangeProps: PropTypes.func\n };\n\n static defaultProps = {\n points: []\n };\n\n dragPoint = (index, from, to) => {\n log('[dragPoint] from, to:', from, to);\n const { onChange, points } = this.props;\n const update = [...points];\n const overlapPoint = !!(points || []).find(p => equalPoints(p, to));\n\n if (equalPoints(from, to) || overlapPoint) {\n return;\n }\n\n if (points[index].label) {\n to.label = points[index].label;\n }\n\n update.splice(index, 1, to);\n onChange(update);\n };\n\n dragLine = (existing, next) => {\n log('[dragLine]: ', existing, next);\n const { onChange } = this.props;\n\n if (existing.from.label) {\n next.from.label = existing.from.label;\n }\n\n if (existing.to.label) {\n next.to.label = existing.to.label;\n }\n\n const points = swap(this.props.points, existing.from, next.from, existing.to, next.to);\n onChange(points);\n };\n\n dragPoly = (existing, next) => {\n log('[dragPoly] ', existing, next);\n const { onChange } = this.props;\n\n next.forEach((point, index) => {\n if (existing[index].label) {\n next[index].label = existing[index].label;\n }\n });\n\n onChange(next);\n };\n\n close = () => {\n const { points, onClosePolygon } = this.props;\n log('[close] ...');\n if (points.length >= 3) {\n onClosePolygon();\n } else {\n log('[close] - nope');\n }\n };\n\n labelChange = (point, index) => {\n const { points, onChangeProps } = this.props;\n const updatedPoint = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete updatedPoint.label;\n }\n\n const update = [...points];\n\n update.splice(index, 1, updatedPoint);\n onChangeProps(update);\n };\n\n clickPoint = (point, index, data) => {\n const {\n closed,\n onClick,\n isToolActive,\n labelModeEnabled,\n onChangeProps,\n onChangeLabelProps,\n points\n } = this.props;\n\n if (labelModeEnabled) {\n if (points && index === points.length) {\n const { a, b } = getRightestPoints(points);\n const middle = { label: '', ...point, ...getMiddleOfTwoPoints(a, b) };\n\n onChangeLabelProps(middle);\n } else {\n const update = [...points];\n\n update.splice(index, 1, { label: '', ...point });\n onChangeProps(update);\n }\n\n if (this.input[index]) {\n this.input[index].focus();\n }\n } else {\n if (isToolActive && !closed && index === 0) {\n this.close();\n } else {\n onClick(data);\n }\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n closed,\n coordinatesOnHover,\n correctness,\n disabled,\n graphProps,\n onDragStart,\n onDragStop,\n points,\n middle,\n labelNode,\n labelModeEnabled\n } = this.props;\n const lines = buildLines(points, closed);\n const common = { onDragStart, onDragStop, graphProps, disabled, correctness };\n const polygonLabelIndex = (points && points.length) || 0;\n let polygonLabelNode = null;\n\n if (labelNode && middle && middle.hasOwnProperty('label')) {\n polygonLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={r => (this.input[polygonLabelIndex] = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={() => {}}\n />,\n labelNode\n );\n }\n\n return (\n <g>\n {closed ? (\n <React.Fragment>\n <DraggablePolygon\n points={points}\n onDrag={this.dragPoly.bind(this, points)}\n closed={closed}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n {polygonLabelNode}\n </React.Fragment>\n ) : (\n <Polygon points={points} graphProps={graphProps} closed={closed} />\n )}\n {(lines || []).map((l, index) => (\n <Line\n key={`line-${index}`}\n from={l.from}\n to={l.to}\n onDrag={this.dragLine.bind(this, l)}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n ))}\n\n {(points || []).map((p, index) => {\n return [\n <BasePoint\n key={`point-${index}`}\n coordinatesOnHover={coordinatesOnHover}\n labelNode={labelNode}\n x={p.x}\n y={p.y}\n onDrag={this.dragPoint.bind(this, index, p)}\n onClick={this.clickPoint.bind(this, p, index)}\n {...common}\n />,\n labelNode && p.hasOwnProperty('label')\n ? ReactDOM.createPortal(\n <MarkLabel\n inputRef={r => (this.input[index] = r)}\n disabled={!labelModeEnabled}\n mark={p}\n graphProps={graphProps}\n onChange={label => this.labelChange({ ...p, label }, index)}\n />,\n labelNode\n )\n : null\n ];\n })}\n </g>\n );\n }\n}\n\nexport const BaseComponent = withStyles(() => ({}))(RawBaseComponent);\n\nexport default class Component extends React.Component {\n static propTypes = {\n ...ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n change = points => {\n const {\n mark: { middle }\n } = this.props;\n const mark = { ...this.state.mark, points };\n\n if (middle) {\n const { a, b } = getRightestPoints(points);\n mark.middle = { ...middle, ...getMiddleOfTwoPoints(a, b) };\n }\n\n this.setState({ mark });\n };\n\n changeProps = points => {\n const mark = { ...this.props.mark, points };\n\n this.props.onChange(this.props.mark, mark);\n };\n\n changeLabelProps = point => {\n const { mark, onChange } = this.props;\n const middle = { ...mark.middle, ...point };\n\n onChange(mark, { ...mark, middle });\n };\n\n closePolygon = () => {\n log('[closePolygon] ...');\n const { onComplete, mark } = this.props;\n const update = { ...mark, closed: true };\n\n onComplete(mark, update);\n };\n\n dragStart = () => this.setState({ mark: this.props.mark });\n\n dragStop = () => {\n const { onChange } = this.props;\n const m = { ...this.state.mark };\n this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n shouldComponentUpdate = (nextProps, nextState) => {\n const { coordinatesOnHover, graphProps, mark } = this.props;\n const { graphProps: nextGraphProps } = nextProps;\n\n return (\n !utils.isDomainRangeEqual(graphProps, nextGraphProps) ||\n !isEqual(mark, nextProps.mark) ||\n !isEqual(this.state.mark, nextState.mark) ||\n coordinatesOnHover !== nextProps.coordinatesOnHover\n );\n };\n\n render() {\n const {\n coordinatesOnHover,\n mark,\n graphProps,\n onClick,\n isToolActive,\n labelNode,\n labelModeEnabled\n } = this.props;\n const { mark: stateMark } = this.state;\n\n return (\n <BaseComponent\n {...(stateMark || mark)}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.change}\n onChangeLabelProps={this.changeLabelProps}\n onChangeProps={this.changeProps}\n onClosePolygon={this.closePolygon}\n onDragStart={this.dragStart}\n onDragStop={this.dragStop}\n onClick={onClick}\n graphProps={graphProps}\n isToolActive={isToolActive}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n />\n );\n }\n}\n"],"file":"component.js"}
1
+ {"version":3,"sources":["../../../src/tools/polygon/component.jsx"],"names":["log","buildLines","points","closed","expanded","reduce","acc","p","index","push","isLast","length","next","all","map","from","to","swap","arr","rest","pairs","pr","e","replacement","Number","isFinite","splice","RawBaseComponent","props","onChange","update","overlapPoint","find","label","existing","forEach","point","onClosePolygon","onChangeProps","updatedPoint","data","onClick","isToolActive","labelModeEnabled","onChangeLabelProps","a","b","middle","input","focus","close","coordinatesOnHover","correctness","disabled","graphProps","onDragStart","onDragStop","labelNode","lines","common","polygonLabelIndex","polygonLabelNode","hasOwnProperty","ReactDOM","createPortal","r","dragPoly","bind","clickPoint","l","dragLine","x","y","dragPoint","labelChange","React","Component","classes","PropTypes","object","className","string","bool","arrayOf","types","PointType","func","isRequired","GraphPropsType","BaseComponent","mark","state","setState","onComplete","m","undefined","nextProps","nextState","nextGraphProps","utils","isDomainRangeEqual","stateMark","change","changeLabelProps","changeProps","closePolygon","dragStart","dragStop","ToolPropTypeFields"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0BAAN,CAAZ;;AAEO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,MAAD,EAASC,MAAT,EAAoB;AAC5C,MAAMC,QAAQ,GAAGF,MAAM,CAACG,MAAP,CAAc,UAACC,GAAD,EAAMC,CAAN,EAASC,KAAT,EAAmB;AAChDF,IAAAA,GAAG,CAACG,IAAJ,iCAAcF,CAAd;AAAiBC,MAAAA,KAAK,EAALA;AAAjB;AACA,QAAME,MAAM,GAAGF,KAAK,KAAKN,MAAM,CAACS,MAAP,GAAgB,CAAzC;AACA,QAAMC,IAAI,GAAGF,MAAM,GAAG,CAAH,GAAOF,KAAK,GAAG,CAAlC;AACAF,IAAAA,GAAG,CAACG,IAAJ,iCAAcP,MAAM,CAACU,IAAD,CAApB;AAA4BJ,MAAAA,KAAK,EAAEI;AAAnC;AACA,WAAON,GAAP;AACD,GANgB,EAMd,EANc,CAAjB;AAQA,MAAMO,GAAG,GAAG,uBAAMT,QAAN,EAAgB,CAAhB,EAAmBU,GAAnB,CAAuB,gBAAgB;AAAA;AAAA,QAAdC,IAAc;AAAA,QAARC,EAAQ;;AACjD,WAAO;AAAED,MAAAA,IAAI,EAAJA,IAAF;AAAQC,MAAAA,EAAE,EAAFA;AAAR,KAAP;AACD,GAFW,CAAZ;AAIA,SAAOb,MAAM,GAAGU,GAAH,GAAS,yBAAQA,GAAR,CAAtB;AACD,CAdM;;;;AAgBA,IAAMI,IAAI,GAAG,SAAPA,IAAO,CAACC,GAAD,EAAkB;AAAA,oCAATC,IAAS;AAATA,IAAAA,IAAS;AAAA;;AACpC,MAAMC,KAAK,GAAG,uBAAMD,IAAN,EAAY,CAAZ,CAAd;AACA,SAAOC,KAAK,CAACf,MAAN,CACL,UAACC,GAAD,EAAMe,EAAN,EAAa;AACX,QAAIA,EAAE,CAACV,MAAH,KAAc,CAAlB,EAAqB;AACnB,+BAAuBU,EAAvB;AAAA,UAAKC,CAAL;AAAA,UAAQC,WAAR;;AACA,iCAAUC,MAAM,CAACC,QAAP,CAAgBH,CAAC,CAACd,KAAlB,CAAV,EAAoC,uBAApC;AACA,UAAMA,KAAK,GAAGc,CAAC,CAACd,KAAhB,CAHmB,CAInB;;AACA,UAAIA,KAAK,IAAI,CAAb,EAAgB;AACdF,QAAAA,GAAG,CAACoB,MAAJ,CAAWlB,KAAX,EAAkB,CAAlB,EAAqBe,WAArB;AACA,eAAOjB,GAAP;AACD,OAHD,MAGO;AACL,eAAOA,GAAP;AACD;AACF,KAXD,MAWO;AACL,aAAOA,GAAP;AACD;AACF,GAhBI,qBAiBDY,GAjBC,EAAP;AAmBD,CArBM;;;;IAuBMS,gB;;;;;;;;;;;;;;;;gEA0BC,UAACnB,KAAD,EAAQO,IAAR,EAAcC,EAAd,EAAqB;AAC/BhB,MAAAA,GAAG,CAAC,uBAAD,EAA0Be,IAA1B,EAAgCC,EAAhC,CAAH;AACA,wBAA6B,MAAKY,KAAlC;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkB3B,MAAlB,eAAkBA,MAAlB;;AACA,UAAM4B,MAAM,sBAAO5B,MAAP,CAAZ;;AACA,UAAM6B,YAAY,GAAG,CAAC,CAAC,CAAC7B,MAAM,IAAI,EAAX,EAAe8B,IAAf,CAAoB,UAAAzB,CAAC;AAAA,eAAI,wBAAYA,CAAZ,EAAeS,EAAf,CAAJ;AAAA,OAArB,CAAvB;;AAEA,UAAI,wBAAYD,IAAZ,EAAkBC,EAAlB,KAAyBe,YAA7B,EAA2C;AACzC;AACD;;AAED,UAAI7B,MAAM,CAACM,KAAD,CAAN,CAAcyB,KAAlB,EAAyB;AACvBjB,QAAAA,EAAE,CAACiB,KAAH,GAAW/B,MAAM,CAACM,KAAD,CAAN,CAAcyB,KAAzB;AACD;;AAEDH,MAAAA,MAAM,CAACJ,MAAP,CAAclB,KAAd,EAAqB,CAArB,EAAwBQ,EAAxB;AACAa,MAAAA,QAAQ,CAACC,MAAD,CAAR;AACD,K;;+DAEU,UAACI,QAAD,EAAWtB,IAAX,EAAoB;AAC7BZ,MAAAA,GAAG,CAAC,cAAD,EAAiBkC,QAAjB,EAA2BtB,IAA3B,CAAH;AACA,UAAQiB,QAAR,GAAqB,MAAKD,KAA1B,CAAQC,QAAR;;AAEA,UAAIK,QAAQ,CAACnB,IAAT,CAAckB,KAAlB,EAAyB;AACvBrB,QAAAA,IAAI,CAACG,IAAL,CAAUkB,KAAV,GAAkBC,QAAQ,CAACnB,IAAT,CAAckB,KAAhC;AACD;;AAED,UAAIC,QAAQ,CAAClB,EAAT,CAAYiB,KAAhB,EAAuB;AACrBrB,QAAAA,IAAI,CAACI,EAAL,CAAQiB,KAAR,GAAgBC,QAAQ,CAAClB,EAAT,CAAYiB,KAA5B;AACD;;AAED,UAAM/B,MAAM,GAAGe,IAAI,CAAC,MAAKW,KAAL,CAAW1B,MAAZ,EAAoBgC,QAAQ,CAACnB,IAA7B,EAAmCH,IAAI,CAACG,IAAxC,EAA8CmB,QAAQ,CAAClB,EAAvD,EAA2DJ,IAAI,CAACI,EAAhE,CAAnB;AACAa,MAAAA,QAAQ,CAAC3B,MAAD,CAAR;AACD,K;;+DAEU,UAACgC,QAAD,EAAWtB,IAAX,EAAoB;AAC7BZ,MAAAA,GAAG,CAAC,aAAD,EAAgBkC,QAAhB,EAA0BtB,IAA1B,CAAH;AACA,UAAQiB,QAAR,GAAqB,MAAKD,KAA1B,CAAQC,QAAR;AAEAjB,MAAAA,IAAI,CAACuB,OAAL,CAAa,UAACC,KAAD,EAAQ5B,KAAR,EAAkB;AAC7B,YAAI0B,QAAQ,CAAC1B,KAAD,CAAR,CAAgByB,KAApB,EAA2B;AACzBrB,UAAAA,IAAI,CAACJ,KAAD,CAAJ,CAAYyB,KAAZ,GAAoBC,QAAQ,CAAC1B,KAAD,CAAR,CAAgByB,KAApC;AACD;AACF,OAJD;AAMAJ,MAAAA,QAAQ,CAACjB,IAAD,CAAR;AACD,K;;4DAEO,YAAM;AACZ,yBAAmC,MAAKgB,KAAxC;AAAA,UAAQ1B,MAAR,gBAAQA,MAAR;AAAA,UAAgBmC,cAAhB,gBAAgBA,cAAhB;AACArC,MAAAA,GAAG,CAAC,aAAD,CAAH;;AACA,UAAIE,MAAM,CAACS,MAAP,IAAiB,CAArB,EAAwB;AACtB0B,QAAAA,cAAc;AACf,OAFD,MAEO;AACLrC,QAAAA,GAAG,CAAC,gBAAD,CAAH;AACD;AACF,K;;kEAEa,UAACoC,KAAD,EAAQ5B,KAAR,EAAkB;AAC9B,yBAAkC,MAAKoB,KAAvC;AAAA,UAAQ1B,MAAR,gBAAQA,MAAR;AAAA,UAAgBoC,aAAhB,gBAAgBA,aAAhB;;AACA,UAAMC,YAAY,qBAAQH,KAAR,CAAlB;;AAEA,UAAI,CAACA,KAAK,CAACH,KAAP,IAAgB,yBAAQG,KAAK,CAACH,KAAd,CAApB,EAA0C;AACxC,eAAOM,YAAY,CAACN,KAApB;AACD;;AAED,UAAMH,MAAM,sBAAO5B,MAAP,CAAZ;;AAEA4B,MAAAA,MAAM,CAACJ,MAAP,CAAclB,KAAd,EAAqB,CAArB,EAAwB+B,YAAxB;AACAD,MAAAA,aAAa,CAACR,MAAD,CAAb;AACD,K;;iEAEY,UAACM,KAAD,EAAQ5B,KAAR,EAAegC,IAAf,EAAwB;AACnC,yBAQI,MAAKZ,KART;AAAA,UACEzB,MADF,gBACEA,MADF;AAAA,UAEEsC,OAFF,gBAEEA,OAFF;AAAA,UAGEC,YAHF,gBAGEA,YAHF;AAAA,UAIEC,gBAJF,gBAIEA,gBAJF;AAAA,UAKEL,aALF,gBAKEA,aALF;AAAA,UAMEM,kBANF,gBAMEA,kBANF;AAAA,UAOE1C,MAPF,gBAOEA,MAPF;;AAUA,UAAIyC,gBAAJ,EAAsB;AACpB,YAAIzC,MAAM,IAAIM,KAAK,KAAKN,MAAM,CAACS,MAA/B,EAAuC;AACrC,mCAAiB,8BAAkBT,MAAlB,CAAjB;AAAA,cAAQ2C,CAAR,sBAAQA,CAAR;AAAA,cAAWC,CAAX,sBAAWA,CAAX;;AACA,cAAMC,MAAM;AAAKd,YAAAA,KAAK,EAAE;AAAZ,aAAmBG,KAAnB,GAA6B,iCAAqBS,CAArB,EAAwBC,CAAxB,CAA7B,CAAZ;;AAEAF,UAAAA,kBAAkB,CAACG,MAAD,CAAlB;AACD,SALD,MAKO;AACL,cAAMjB,MAAM,sBAAO5B,MAAP,CAAZ;;AAEA4B,UAAAA,MAAM,CAACJ,MAAP,CAAclB,KAAd,EAAqB,CAArB;AAA0ByB,YAAAA,KAAK,EAAE;AAAjC,aAAwCG,KAAxC;AACAE,UAAAA,aAAa,CAACR,MAAD,CAAb;AACD;;AAED,YAAI,MAAKkB,KAAL,CAAWxC,KAAX,CAAJ,EAAuB;AACrB,gBAAKwC,KAAL,CAAWxC,KAAX,EAAkByC,KAAlB;AACD;AACF,OAhBD,MAgBO;AACL,YAAIP,YAAY,IAAI,CAACvC,MAAjB,IAA2BK,KAAK,KAAK,CAAzC,EAA4C;AAC1C,gBAAK0C,KAAL;AACD,SAFD,MAEO;AACLT,UAAAA,OAAO,CAACD,IAAD,CAAP;AACD;AACF;AACF,K;;4DAGO,E;;;;;;;WAER,kBAAS;AAAA;;AACP,yBAYI,KAAKZ,KAZT;AAAA,UACEzB,MADF,gBACEA,MADF;AAAA,UAEEgD,kBAFF,gBAEEA,kBAFF;AAAA,UAGEC,WAHF,gBAGEA,WAHF;AAAA,UAIEC,QAJF,gBAIEA,QAJF;AAAA,UAKEC,UALF,gBAKEA,UALF;AAAA,UAMEC,WANF,gBAMEA,WANF;AAAA,UAOEC,UAPF,gBAOEA,UAPF;AAAA,UAQEtD,MARF,gBAQEA,MARF;AAAA,UASE6C,MATF,gBASEA,MATF;AAAA,UAUEU,SAVF,gBAUEA,SAVF;AAAA,UAWEd,gBAXF,gBAWEA,gBAXF;AAaA,UAAMe,KAAK,GAAGzD,UAAU,CAACC,MAAD,EAASC,MAAT,CAAxB;AACA,UAAMwD,MAAM,GAAG;AAAEJ,QAAAA,WAAW,EAAXA,WAAF;AAAeC,QAAAA,UAAU,EAAVA,UAAf;AAA2BF,QAAAA,UAAU,EAAVA,UAA3B;AAAuCD,QAAAA,QAAQ,EAARA,QAAvC;AAAiDD,QAAAA,WAAW,EAAXA;AAAjD,OAAf;AACA,UAAMQ,iBAAiB,GAAI1D,MAAM,IAAIA,MAAM,CAACS,MAAlB,IAA6B,CAAvD;AACA,UAAIkD,gBAAgB,GAAG,IAAvB;;AAEA,UAAIJ,SAAS,IAAIV,MAAb,IAAuBA,MAAM,CAACe,cAAP,CAAsB,OAAtB,CAA3B,EAA2D;AACzDD,QAAAA,gBAAgB,gBAAGE,qBAASC,YAAT,eACjB,gCAAC,qBAAD;AACE,UAAA,QAAQ,EAAE,kBAAAC,CAAC;AAAA,mBAAK,MAAI,CAACjB,KAAL,CAAWY,iBAAX,IAAgCK,CAArC;AAAA,WADb;AAEE,UAAA,QAAQ,EAAE,CAACtB,gBAFb;AAGE,UAAA,IAAI,EAAEI,MAHR;AAIE,UAAA,UAAU,EAAEO,UAJd;AAKE,UAAA,QAAQ,EAAE,oBAAM,CAAE;AALpB,UADiB,EAQjBG,SARiB,CAAnB;AAUD;;AAED,0BACE,2CACGtD,MAAM,gBACL,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,mBAAD;AACE,QAAA,MAAM,EAAED,MADV;AAEE,QAAA,MAAM,EAAE,KAAKgE,QAAL,CAAcC,IAAd,CAAmB,IAAnB,EAAyBjE,MAAzB,CAFV;AAGE,QAAA,MAAM,EAAEC;AAHV,SAIMwD,MAJN;AAKE,QAAA,OAAO,EAAE,KAAKS,UAAL,CAAgBD,IAAhB,CAAqB,IAArB,EAA2BpB,MAA3B,EAAmCa,iBAAnC;AALX,SADF,EAQGC,gBARH,CADK,gBAYL,gCAAC,gBAAD;AAAS,QAAA,MAAM,EAAE3D,MAAjB;AAAyB,QAAA,UAAU,EAAEoD,UAArC;AAAiD,QAAA,MAAM,EAAEnD;AAAzD,QAbJ,EAeG,CAACuD,KAAK,IAAI,EAAV,EAAc5C,GAAd,CAAkB,UAACuD,CAAD,EAAI7D,KAAJ;AAAA,4BACjB,gCAAC,gBAAD;AACE,UAAA,GAAG,iBAAUA,KAAV,CADL;AAEE,UAAA,IAAI,EAAE6D,CAAC,CAACtD,IAFV;AAGE,UAAA,EAAE,EAAEsD,CAAC,CAACrD,EAHR;AAIE,UAAA,MAAM,EAAE,MAAI,CAACsD,QAAL,CAAcH,IAAd,CAAmB,MAAnB,EAAyBE,CAAzB;AAJV,WAKMV,MALN;AAME,UAAA,OAAO,EAAE,MAAI,CAACS,UAAL,CAAgBD,IAAhB,CAAqB,MAArB,EAA2BpB,MAA3B,EAAmCa,iBAAnC;AANX,WADiB;AAAA,OAAlB,CAfH,EA0BG,CAAC1D,MAAM,IAAI,EAAX,EAAeY,GAAf,CAAmB,UAACP,CAAD,EAAIC,KAAJ,EAAc;AAChC,eAAO,cACL,gCAAC,gBAAD;AACE,UAAA,GAAG,kBAAWA,KAAX,CADL;AAEE,UAAA,kBAAkB,EAAE2C,kBAFtB;AAGE,UAAA,SAAS,EAAEM,SAHb;AAIE,UAAA,CAAC,EAAElD,CAAC,CAACgE,CAJP;AAKE,UAAA,CAAC,EAAEhE,CAAC,CAACiE,CALP;AAME,UAAA,MAAM,EAAE,MAAI,CAACC,SAAL,CAAeN,IAAf,CAAoB,MAApB,EAA0B3D,KAA1B,EAAiCD,CAAjC,CANV;AAOE,UAAA,OAAO,EAAE,MAAI,CAAC6D,UAAL,CAAgBD,IAAhB,CAAqB,MAArB,EAA2B5D,CAA3B,EAA8BC,KAA9B;AAPX,WAQMmD,MARN,EADK,EAWLF,SAAS,IAAIlD,CAAC,CAACuD,cAAF,CAAiB,OAAjB,CAAb,gBACIC,qBAASC,YAAT,eACE,gCAAC,qBAAD;AACE,UAAA,QAAQ,EAAE,kBAAAC,CAAC;AAAA,mBAAK,MAAI,CAACjB,KAAL,CAAWxC,KAAX,IAAoByD,CAAzB;AAAA,WADb;AAEE,UAAA,QAAQ,EAAE,CAACtB,gBAFb;AAGE,UAAA,IAAI,EAAEpC,CAHR;AAIE,UAAA,UAAU,EAAE+C,UAJd;AAKE,UAAA,QAAQ,EAAE,kBAAArB,KAAK;AAAA,mBAAI,MAAI,CAACyC,WAAL,iCAAsBnE,CAAtB;AAAyB0B,cAAAA,KAAK,EAALA;AAAzB,gBAAkCzB,KAAlC,CAAJ;AAAA;AALjB,UADF,EAQEiD,SARF,CADJ,GAWI,IAtBC,CAAP;AAwBD,OAzBA,CA1BH,CADF;AAuDD;;;;EA/NmCkB,kBAAMC,S;;;;gBAA/BjD,gB,eACQ;AACjBkD,EAAAA,OAAO,EAAEC,sBAAUC,MADF;AAEjBC,EAAAA,SAAS,EAAEF,sBAAUG,MAFJ;AAGjB5B,EAAAA,QAAQ,EAAEyB,sBAAUI,IAHH;AAIjB9B,EAAAA,WAAW,EAAE0B,sBAAUG,MAJN;AAKjB/E,EAAAA,MAAM,EAAE4E,sBAAUK,OAAV,CAAkBC,YAAMC,SAAxB,CALS;AAMjBlF,EAAAA,MAAM,EAAE2E,sBAAUI,IAND;AAOjB/B,EAAAA,kBAAkB,EAAE2B,sBAAUI,IAPb;AAQjBrD,EAAAA,QAAQ,EAAEiD,sBAAUQ,IAAV,CAAeC,UARR;AASjBlD,EAAAA,cAAc,EAAEyC,sBAAUQ,IAAV,CAAeC,UATd;AAUjBhC,EAAAA,WAAW,EAAEuB,sBAAUQ,IAVN;AAWjB9B,EAAAA,UAAU,EAAEsB,sBAAUQ,IAXL;AAYjB7C,EAAAA,OAAO,EAAEqC,sBAAUQ,IAZF;AAajBhC,EAAAA,UAAU,EAAE8B,YAAMI,cAAN,CAAqBD,UAbhB;AAcjB7C,EAAAA,YAAY,EAAEoC,sBAAUI,IAdP;AAejBzB,EAAAA,SAAS,EAAEqB,sBAAUC,MAfJ;AAgBjBpC,EAAAA,gBAAgB,EAAEmC,sBAAUI,IAhBX;AAiBjBtC,EAAAA,kBAAkB,EAAEkC,sBAAUQ,IAjBb;AAkBjBhD,EAAAA,aAAa,EAAEwC,sBAAUQ;AAlBR,C;;gBADR3D,gB,kBAsBW;AACpBzB,EAAAA,MAAM,EAAE;AADY,C;;AA4MjB,IAAMuF,aAAa,GAAG,wBAAW;AAAA,SAAO,EAAP;AAAA,CAAX,EAAuB9D,gBAAvB,CAAtB;;;IAEciD,S;;;;;AAQnB,qBAAYhD,KAAZ,EAAmB;AAAA;;AAAA;;AACjB,gCAAMA,KAAN;;AADiB,8DAKV,UAAA1B,MAAM,EAAI;AACjB,UACU6C,MADV,GAEI,OAAKnB,KAFT,CACE8D,IADF,CACU3C,MADV;;AAGA,UAAM2C,IAAI,mCAAQ,OAAKC,KAAL,CAAWD,IAAnB;AAAyBxF,QAAAA,MAAM,EAANA;AAAzB,QAAV;;AAEA,UAAI6C,MAAJ,EAAY;AACV,kCAAiB,8BAAkB7C,MAAlB,CAAjB;AAAA,YAAQ2C,CAAR,uBAAQA,CAAR;AAAA,YAAWC,CAAX,uBAAWA,CAAX;;AACA4C,QAAAA,IAAI,CAAC3C,MAAL,mCAAmBA,MAAnB,GAA8B,iCAAqBF,CAArB,EAAwBC,CAAxB,CAA9B;AACD;;AAED,aAAK8C,QAAL,CAAc;AAAEF,QAAAA,IAAI,EAAJA;AAAF,OAAd;AACD,KAjBkB;;AAAA,mEAmBL,UAAAxF,MAAM,EAAI;AACtB,UAAMwF,IAAI,mCAAQ,OAAK9D,KAAL,CAAW8D,IAAnB;AAAyBxF,QAAAA,MAAM,EAANA;AAAzB,QAAV;;AAEA,aAAK0B,KAAL,CAAWC,QAAX,CAAoB,OAAKD,KAAL,CAAW8D,IAA/B,EAAqCA,IAArC;AACD,KAvBkB;;AAAA,wEAyBA,UAAAtD,KAAK,EAAI;AAC1B,yBAA2B,OAAKR,KAAhC;AAAA,UAAQ8D,IAAR,gBAAQA,IAAR;AAAA,UAAc7D,QAAd,gBAAcA,QAAd;;AACA,UAAMkB,MAAM,mCAAQ2C,IAAI,CAAC3C,MAAb,GAAwBX,KAAxB,CAAZ;;AAEAP,MAAAA,QAAQ,CAAC6D,IAAD,kCAAYA,IAAZ;AAAkB3C,QAAAA,MAAM,EAANA;AAAlB,SAAR;AACD,KA9BkB;;AAAA,oEAgCJ,YAAM;AACnB/C,MAAAA,GAAG,CAAC,oBAAD,CAAH;AACA,0BAA6B,OAAK4B,KAAlC;AAAA,UAAQiE,UAAR,iBAAQA,UAAR;AAAA,UAAoBH,IAApB,iBAAoBA,IAApB;;AACA,UAAM5D,MAAM,mCAAQ4D,IAAR;AAAcvF,QAAAA,MAAM,EAAE;AAAtB,QAAZ;;AAEA0F,MAAAA,UAAU,CAACH,IAAD,EAAO5D,MAAP,CAAV;AACD,KAtCkB;;AAAA,iEAwCP;AAAA,aAAM,OAAK8D,QAAL,CAAc;AAAEF,QAAAA,IAAI,EAAE,OAAK9D,KAAL,CAAW8D;AAAnB,OAAd,CAAN;AAAA,KAxCO;;AAAA,gEA0CR,YAAM;AACf,UAAQ7D,QAAR,GAAqB,OAAKD,KAA1B,CAAQC,QAAR;;AACA,UAAMiE,CAAC,qBAAQ,OAAKH,KAAL,CAAWD,IAAnB,CAAP;;AACA,aAAKE,QAAL,CAAc;AAAEF,QAAAA,IAAI,EAAEK;AAAR,OAAd,EAAmC,YAAM;AACvClE,QAAAA,QAAQ,CAAC,OAAKD,KAAL,CAAW8D,IAAZ,EAAkBI,CAAlB,CAAR;AACD,OAFD;AAGD,KAhDkB;;AAAA,6EAkDK,UAACE,SAAD,EAAYC,SAAZ,EAA0B;AAChD,0BAAiD,OAAKrE,KAAtD;AAAA,UAAQuB,kBAAR,iBAAQA,kBAAR;AAAA,UAA4BG,UAA5B,iBAA4BA,UAA5B;AAAA,UAAwCoC,IAAxC,iBAAwCA,IAAxC;AACA,UAAoBQ,cAApB,GAAuCF,SAAvC,CAAQ1C,UAAR;AAEA,aACE,CAAC6C,YAAMC,kBAAN,CAAyB9C,UAAzB,EAAqC4C,cAArC,CAAD,IACA,CAAC,yBAAQR,IAAR,EAAcM,SAAS,CAACN,IAAxB,CADD,IAEA,CAAC,yBAAQ,OAAKC,KAAL,CAAWD,IAAnB,EAAyBO,SAAS,CAACP,IAAnC,CAFD,IAGAvC,kBAAkB,KAAK6C,SAAS,CAAC7C,kBAJnC;AAMD,KA5DkB;;AAEjB,WAAKwC,KAAL,GAAa,EAAb;AAFiB;AAGlB;;;;WA2DD,kBAAS;AACP,yBAQI,KAAK/D,KART;AAAA,UACEuB,kBADF,gBACEA,kBADF;AAAA,UAEEuC,IAFF,gBAEEA,IAFF;AAAA,UAGEpC,UAHF,gBAGEA,UAHF;AAAA,UAIEb,OAJF,gBAIEA,OAJF;AAAA,UAKEC,YALF,gBAKEA,YALF;AAAA,UAMEe,SANF,gBAMEA,SANF;AAAA,UAOEd,gBAPF,gBAOEA,gBAPF;AASA,UAAc0D,SAAd,GAA4B,KAAKV,KAAjC,CAAQD,IAAR;AAEA,0BACE,gCAAC,aAAD,eACOW,SAAS,IAAIX,IADpB;AAEE,QAAA,kBAAkB,EAAEvC,kBAFtB;AAGE,QAAA,QAAQ,EAAE,KAAKmD,MAHjB;AAIE,QAAA,kBAAkB,EAAE,KAAKC,gBAJ3B;AAKE,QAAA,aAAa,EAAE,KAAKC,WALtB;AAME,QAAA,cAAc,EAAE,KAAKC,YANvB;AAOE,QAAA,WAAW,EAAE,KAAKC,SAPpB;AAQE,QAAA,UAAU,EAAE,KAAKC,QARnB;AASE,QAAA,OAAO,EAAElE,OATX;AAUE,QAAA,UAAU,EAAEa,UAVd;AAWE,QAAA,YAAY,EAAEZ,YAXhB;AAYE,QAAA,SAAS,EAAEe,SAZb;AAaE,QAAA,gBAAgB,EAAEd;AAbpB,SADF;AAiBD;;;;EAnGoCgC,kBAAMC,S;;;;gBAAxBA,S,+CAEdgC,yB;AACHtD,EAAAA,UAAU,EAAE8B,YAAMI,cAAN,CAAqBD;;;gBAHhBX,S,kBAMG,E","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { BasePoint } from '../shared/point';\nimport chunk from 'lodash/chunk';\nimport initial from 'lodash/initial';\nimport isEqual from 'lodash/isEqual';\nimport debug from 'debug';\nimport Line from './line';\nimport DraggablePolygon, { Polygon } from './polygon';\nimport { types, utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { getMiddleOfTwoPoints, getRightestPoints, equalPoints } from '../../utils';\n\nconst log = debug('pie-lib:graphing:polygon');\n\nexport const buildLines = (points, closed) => {\n const expanded = points.reduce((acc, p, index) => {\n acc.push({ ...p, index });\n const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n acc.push({ ...points[next], index: next });\n return acc;\n }, []);\n\n const all = chunk(expanded, 2).map(([from, to]) => {\n return { from, to };\n });\n\n return closed ? all : initial(all);\n};\n\nexport const swap = (arr, ...rest) => {\n const pairs = chunk(rest, 2);\n return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n invariant(Number.isFinite(e.index), 'Index must be defined');\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n if (index >= 0) {\n acc.splice(index, 1, replacement);\n return acc;\n } else {\n return acc;\n }\n } else {\n return acc;\n }\n },\n [...arr]\n );\n};\n\nexport class RawBaseComponent extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n points: PropTypes.arrayOf(types.PointType),\n closed: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClosePolygon: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n isToolActive: PropTypes.bool,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n onChangeLabelProps: PropTypes.func,\n onChangeProps: PropTypes.func\n };\n\n static defaultProps = {\n points: []\n };\n\n dragPoint = (index, from, to) => {\n log('[dragPoint] from, to:', from, to);\n const { onChange, points } = this.props;\n const update = [...points];\n const overlapPoint = !!(points || []).find(p => equalPoints(p, to));\n\n if (equalPoints(from, to) || overlapPoint) {\n return;\n }\n\n if (points[index].label) {\n to.label = points[index].label;\n }\n\n update.splice(index, 1, to);\n onChange(update);\n };\n\n dragLine = (existing, next) => {\n log('[dragLine]: ', existing, next);\n const { onChange } = this.props;\n\n if (existing.from.label) {\n next.from.label = existing.from.label;\n }\n\n if (existing.to.label) {\n next.to.label = existing.to.label;\n }\n\n const points = swap(this.props.points, existing.from, next.from, existing.to, next.to);\n onChange(points);\n };\n\n dragPoly = (existing, next) => {\n log('[dragPoly] ', existing, next);\n const { onChange } = this.props;\n\n next.forEach((point, index) => {\n if (existing[index].label) {\n next[index].label = existing[index].label;\n }\n });\n\n onChange(next);\n };\n\n close = () => {\n const { points, onClosePolygon } = this.props;\n log('[close] ...');\n if (points.length >= 3) {\n onClosePolygon();\n } else {\n log('[close] - nope');\n }\n };\n\n labelChange = (point, index) => {\n const { points, onChangeProps } = this.props;\n const updatedPoint = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete updatedPoint.label;\n }\n\n const update = [...points];\n\n update.splice(index, 1, updatedPoint);\n onChangeProps(update);\n };\n\n clickPoint = (point, index, data) => {\n const {\n closed,\n onClick,\n isToolActive,\n labelModeEnabled,\n onChangeProps,\n onChangeLabelProps,\n points\n } = this.props;\n\n if (labelModeEnabled) {\n if (points && index === points.length) {\n const { a, b } = getRightestPoints(points);\n const middle = { label: '', ...point, ...getMiddleOfTwoPoints(a, b) };\n\n onChangeLabelProps(middle);\n } else {\n const update = [...points];\n\n update.splice(index, 1, { label: '', ...point });\n onChangeProps(update);\n }\n\n if (this.input[index]) {\n this.input[index].focus();\n }\n } else {\n if (isToolActive && !closed && index === 0) {\n this.close();\n } else {\n onClick(data);\n }\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n closed,\n coordinatesOnHover,\n correctness,\n disabled,\n graphProps,\n onDragStart,\n onDragStop,\n points,\n middle,\n labelNode,\n labelModeEnabled\n } = this.props;\n const lines = buildLines(points, closed);\n const common = { onDragStart, onDragStop, graphProps, disabled, correctness };\n const polygonLabelIndex = (points && points.length) || 0;\n let polygonLabelNode = null;\n\n if (labelNode && middle && middle.hasOwnProperty('label')) {\n polygonLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={r => (this.input[polygonLabelIndex] = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={() => {}}\n />,\n labelNode\n );\n }\n\n return (\n <g>\n {closed ? (\n <React.Fragment>\n <DraggablePolygon\n points={points}\n onDrag={this.dragPoly.bind(this, points)}\n closed={closed}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n {polygonLabelNode}\n </React.Fragment>\n ) : (\n <Polygon points={points} graphProps={graphProps} closed={closed} />\n )}\n {(lines || []).map((l, index) => (\n <Line\n key={`line-${index}`}\n from={l.from}\n to={l.to}\n onDrag={this.dragLine.bind(this, l)}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n ))}\n\n {(points || []).map((p, index) => {\n return [\n <BasePoint\n key={`point-${index}`}\n coordinatesOnHover={coordinatesOnHover}\n labelNode={labelNode}\n x={p.x}\n y={p.y}\n onDrag={this.dragPoint.bind(this, index, p)}\n onClick={this.clickPoint.bind(this, p, index)}\n {...common}\n />,\n labelNode && p.hasOwnProperty('label')\n ? ReactDOM.createPortal(\n <MarkLabel\n inputRef={r => (this.input[index] = r)}\n disabled={!labelModeEnabled}\n mark={p}\n graphProps={graphProps}\n onChange={label => this.labelChange({ ...p, label }, index)}\n />,\n labelNode\n )\n : null\n ];\n })}\n </g>\n );\n }\n}\n\nexport const BaseComponent = withStyles(() => ({}))(RawBaseComponent);\n\nexport default class Component extends React.Component {\n static propTypes = {\n ...ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n change = points => {\n const {\n mark: { middle }\n } = this.props;\n const mark = { ...this.state.mark, points };\n\n if (middle) {\n const { a, b } = getRightestPoints(points);\n mark.middle = { ...middle, ...getMiddleOfTwoPoints(a, b) };\n }\n\n this.setState({ mark });\n };\n\n changeProps = points => {\n const mark = { ...this.props.mark, points };\n\n this.props.onChange(this.props.mark, mark);\n };\n\n changeLabelProps = point => {\n const { mark, onChange } = this.props;\n const middle = { ...mark.middle, ...point };\n\n onChange(mark, { ...mark, middle });\n };\n\n closePolygon = () => {\n log('[closePolygon] ...');\n const { onComplete, mark } = this.props;\n const update = { ...mark, closed: true };\n\n onComplete(mark, update);\n };\n\n dragStart = () => this.setState({ mark: this.props.mark });\n\n dragStop = () => {\n const { onChange } = this.props;\n const m = { ...this.state.mark };\n this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n shouldComponentUpdate = (nextProps, nextState) => {\n const { coordinatesOnHover, graphProps, mark } = this.props;\n const { graphProps: nextGraphProps } = nextProps;\n\n return (\n !utils.isDomainRangeEqual(graphProps, nextGraphProps) ||\n !isEqual(mark, nextProps.mark) ||\n !isEqual(this.state.mark, nextState.mark) ||\n coordinatesOnHover !== nextProps.coordinatesOnHover\n );\n };\n\n render() {\n const {\n coordinatesOnHover,\n mark,\n graphProps,\n onClick,\n isToolActive,\n labelNode,\n labelModeEnabled\n } = this.props;\n const { mark: stateMark } = this.state;\n\n return (\n <BaseComponent\n {...(stateMark || mark)}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.change}\n onChangeLabelProps={this.changeLabelProps}\n onChangeProps={this.changeProps}\n onClosePolygon={this.closePolygon}\n onDragStart={this.dragStart}\n onDragStop={this.dragStop}\n onClick={onClick}\n graphProps={graphProps}\n isToolActive={isToolActive}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n />\n );\n }\n}\n"],"file":"component.js"}