@pie-lib/graphing 3.1.0-next.0 → 3.1.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/package.json +8 -8
- package/lib/__tests__/graph-with-controls.test.js +0 -226
- package/lib/__tests__/graph.test.js +0 -187
- package/lib/__tests__/grid.test.js +0 -29
- package/lib/__tests__/labels.test.js +0 -61
- package/lib/__tests__/mark-label.test.js +0 -133
- package/lib/__tests__/toggle-bar.test.js +0 -150
- package/lib/__tests__/tool-menu.test.js +0 -101
- package/lib/__tests__/undo-redo.test.js +0 -31
- package/lib/__tests__/use-debounce.test.js +0 -24
- package/lib/__tests__/utils.js +0 -70
- package/lib/__tests__/utils.test.js +0 -123
- package/lib/axis/__tests__/arrow.test.js +0 -60
- package/lib/axis/__tests__/axes.test.js +0 -195
- package/lib/axis/arrow.js +0 -79
- package/lib/axis/arrow.js.map +0 -1
- package/lib/axis/axes.js +0 -327
- package/lib/axis/axes.js.map +0 -1
- package/lib/axis/index.js +0 -21
- package/lib/axis/index.js.map +0 -1
- package/lib/bg.js +0 -111
- package/lib/bg.js.map +0 -1
- package/lib/container/actions.js +0 -18
- package/lib/container/actions.js.map +0 -1
- package/lib/container/index.js +0 -118
- package/lib/container/index.js.map +0 -1
- package/lib/container/marks.js +0 -22
- package/lib/container/marks.js.map +0 -1
- package/lib/container/middleware.js +0 -19
- package/lib/container/middleware.js.map +0 -1
- package/lib/container/reducer.js +0 -18
- package/lib/container/reducer.js.map +0 -1
- package/lib/coordinates-label.js +0 -79
- package/lib/coordinates-label.js.map +0 -1
- package/lib/graph-with-controls.js +0 -295
- package/lib/graph-with-controls.js.map +0 -1
- package/lib/graph.js +0 -314
- package/lib/graph.js.map +0 -1
- package/lib/grid-setup.js +0 -406
- package/lib/grid-setup.js.map +0 -1
- package/lib/grid.js +0 -131
- package/lib/grid.js.map +0 -1
- package/lib/index.js +0 -47
- package/lib/index.js.map +0 -1
- package/lib/key-legend.js +0 -201
- package/lib/key-legend.js.map +0 -1
- package/lib/label-svg-icon.js +0 -50
- package/lib/label-svg-icon.js.map +0 -1
- package/lib/labels.js +0 -243
- package/lib/labels.js.map +0 -1
- package/lib/mark-label.js +0 -278
- package/lib/mark-label.js.map +0 -1
- package/lib/toggle-bar.js +0 -248
- package/lib/toggle-bar.js.map +0 -1
- package/lib/tool-menu.js +0 -78
- package/lib/tool-menu.js.map +0 -1
- package/lib/tools/absolute/__tests__/component.test.js +0 -67
- package/lib/tools/absolute/component.js +0 -29
- package/lib/tools/absolute/component.js.map +0 -1
- package/lib/tools/absolute/index.js +0 -50
- package/lib/tools/absolute/index.js.map +0 -1
- package/lib/tools/circle/__tests__/bg-circle.test.js +0 -33
- package/lib/tools/circle/__tests__/component.test.js +0 -68
- package/lib/tools/circle/bg-circle.js +0 -123
- package/lib/tools/circle/bg-circle.js.map +0 -1
- package/lib/tools/circle/component.js +0 -319
- package/lib/tools/circle/component.js.map +0 -1
- package/lib/tools/circle/index.js +0 -41
- package/lib/tools/circle/index.js.map +0 -1
- package/lib/tools/exponential/__tests__/component.test.js +0 -66
- package/lib/tools/exponential/component.js +0 -28
- package/lib/tools/exponential/component.js.map +0 -1
- package/lib/tools/exponential/index.js +0 -56
- package/lib/tools/exponential/index.js.map +0 -1
- package/lib/tools/index.js +0 -86
- package/lib/tools/index.js.map +0 -1
- package/lib/tools/line/__tests__/component.test.js +0 -45
- package/lib/tools/line/component.js +0 -82
- package/lib/tools/line/component.js.map +0 -1
- package/lib/tools/line/index.js +0 -11
- package/lib/tools/line/index.js.map +0 -1
- package/lib/tools/parabola/__tests__/component.test.js +0 -66
- package/lib/tools/parabola/component.js +0 -28
- package/lib/tools/parabola/component.js.map +0 -1
- package/lib/tools/parabola/index.js +0 -50
- package/lib/tools/parabola/index.js.map +0 -1
- package/lib/tools/point/__tests__/component.test.js +0 -50
- package/lib/tools/point/component.js +0 -139
- package/lib/tools/point/component.js.map +0 -1
- package/lib/tools/point/index.js +0 -24
- package/lib/tools/point/index.js.map +0 -1
- package/lib/tools/polygon/__tests__/component.test.js +0 -85
- package/lib/tools/polygon/__tests__/index.test.js +0 -92
- package/lib/tools/polygon/__tests__/line.test.js +0 -29
- package/lib/tools/polygon/__tests__/polygon.test.js +0 -59
- package/lib/tools/polygon/component.js +0 -417
- package/lib/tools/polygon/component.js.map +0 -1
- package/lib/tools/polygon/index.js +0 -89
- package/lib/tools/polygon/index.js.map +0 -1
- package/lib/tools/polygon/line.js +0 -114
- package/lib/tools/polygon/line.js.map +0 -1
- package/lib/tools/polygon/polygon.js +0 -132
- package/lib/tools/polygon/polygon.js.map +0 -1
- package/lib/tools/ray/__tests__/component.test.js +0 -35
- package/lib/tools/ray/component.js +0 -83
- package/lib/tools/ray/component.js.map +0 -1
- package/lib/tools/ray/index.js +0 -11
- package/lib/tools/ray/index.js.map +0 -1
- package/lib/tools/segment/__tests__/component.test.js +0 -35
- package/lib/tools/segment/component.js +0 -57
- package/lib/tools/segment/component.js.map +0 -1
- package/lib/tools/segment/index.js +0 -11
- package/lib/tools/segment/index.js.map +0 -1
- package/lib/tools/shared/__tests__/arrow-head.test.js +0 -45
- package/lib/tools/shared/arrow-head.js +0 -111
- package/lib/tools/shared/arrow-head.js.map +0 -1
- package/lib/tools/shared/icons/CorrectSVG.js +0 -40
- package/lib/tools/shared/icons/CorrectSVG.js.map +0 -1
- package/lib/tools/shared/icons/IncorrectSVG.js +0 -40
- package/lib/tools/shared/icons/IncorrectSVG.js.map +0 -1
- package/lib/tools/shared/icons/MissingSVG.js +0 -39
- package/lib/tools/shared/icons/MissingSVG.js.map +0 -1
- package/lib/tools/shared/line/__tests__/index.test.js +0 -124
- package/lib/tools/shared/line/__tests__/line-path.test.js +0 -62
- package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -91
- package/lib/tools/shared/line/index.js +0 -546
- package/lib/tools/shared/line/index.js.map +0 -1
- package/lib/tools/shared/line/line-path.js +0 -120
- package/lib/tools/shared/line/line-path.js.map +0 -1
- package/lib/tools/shared/line/with-root-edge.js +0 -121
- package/lib/tools/shared/line/with-root-edge.js.map +0 -1
- package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -127
- package/lib/tools/shared/point/__tests__/base-point.test.js +0 -122
- package/lib/tools/shared/point/arrow-point.js +0 -72
- package/lib/tools/shared/point/arrow-point.js.map +0 -1
- package/lib/tools/shared/point/arrow.js +0 -67
- package/lib/tools/shared/point/arrow.js.map +0 -1
- package/lib/tools/shared/point/base-point.js +0 -157
- package/lib/tools/shared/point/base-point.js.map +0 -1
- package/lib/tools/shared/point/index.js +0 -62
- package/lib/tools/shared/point/index.js.map +0 -1
- package/lib/tools/shared/styles.js +0 -30
- package/lib/tools/shared/styles.js.map +0 -1
- package/lib/tools/shared/types.js +0 -16
- package/lib/tools/shared/types.js.map +0 -1
- package/lib/tools/sine/__tests__/component.test.js +0 -72
- package/lib/tools/sine/component.js +0 -40
- package/lib/tools/sine/component.js.map +0 -1
- package/lib/tools/sine/index.js +0 -50
- package/lib/tools/sine/index.js.map +0 -1
- package/lib/tools/vector/__tests__/component.test.js +0 -32
- package/lib/tools/vector/component.js +0 -68
- package/lib/tools/vector/component.js.map +0 -1
- package/lib/tools/vector/index.js +0 -11
- package/lib/tools/vector/index.js.map +0 -1
- package/lib/undo-redo.js +0 -83
- package/lib/undo-redo.js.map +0 -1
- package/lib/use-debounce.js +0 -25
- package/lib/use-debounce.js.map +0 -1
- package/lib/utils.js +0 -230
- package/lib/utils.js.map +0 -1
package/lib/undo-redo.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = exports.UndoRedo = void 0;
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
var _react = _interopRequireDefault(require("react"));
|
|
15
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
16
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
|
18
|
-
var _styles = require("@mui/material/styles");
|
|
19
|
-
var _renderUi = require("@pie-lib/render-ui");
|
|
20
|
-
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
21
|
-
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
22
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
23
|
-
var translator = _translator["default"].translator;
|
|
24
|
-
var StyledButton = (0, _styles.styled)(_Button["default"])(function (_ref) {
|
|
25
|
-
var theme = _ref.theme;
|
|
26
|
-
return {
|
|
27
|
-
color: _renderUi.color.text(),
|
|
28
|
-
fontWeight: 'bold',
|
|
29
|
-
marginBottom: theme.spacing(0.5),
|
|
30
|
-
'&:not(:last-of-type)': {
|
|
31
|
-
marginRight: theme.spacing(0.5)
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
});
|
|
35
|
-
var UndoRedo = exports.UndoRedo = /*#__PURE__*/function (_React$Component) {
|
|
36
|
-
function UndoRedo() {
|
|
37
|
-
(0, _classCallCheck2["default"])(this, UndoRedo);
|
|
38
|
-
return _callSuper(this, UndoRedo, arguments);
|
|
39
|
-
}
|
|
40
|
-
(0, _inherits2["default"])(UndoRedo, _React$Component);
|
|
41
|
-
return (0, _createClass2["default"])(UndoRedo, [{
|
|
42
|
-
key: "render",
|
|
43
|
-
value: function render() {
|
|
44
|
-
var _this$props = this.props,
|
|
45
|
-
className = _this$props.className,
|
|
46
|
-
onUndo = _this$props.onUndo,
|
|
47
|
-
onRedo = _this$props.onRedo,
|
|
48
|
-
onReset = _this$props.onReset,
|
|
49
|
-
language = _this$props.language;
|
|
50
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
51
|
-
className: (0, _classnames["default"])(className)
|
|
52
|
-
}, /*#__PURE__*/_react["default"].createElement(StyledButton, {
|
|
53
|
-
onClick: function onClick() {
|
|
54
|
-
return onUndo(true);
|
|
55
|
-
}
|
|
56
|
-
}, translator.t('common:undo', {
|
|
57
|
-
lng: language
|
|
58
|
-
})), /*#__PURE__*/_react["default"].createElement(StyledButton, {
|
|
59
|
-
onClick: function onClick() {
|
|
60
|
-
return onRedo(true);
|
|
61
|
-
}
|
|
62
|
-
}, translator.t('graphing.redo', {
|
|
63
|
-
lng: language
|
|
64
|
-
})), /*#__PURE__*/_react["default"].createElement(StyledButton, {
|
|
65
|
-
onClick: function onClick() {
|
|
66
|
-
return onReset();
|
|
67
|
-
}
|
|
68
|
-
}, translator.t('graphing.reset', {
|
|
69
|
-
lng: language
|
|
70
|
-
})));
|
|
71
|
-
}
|
|
72
|
-
}]);
|
|
73
|
-
}(_react["default"].Component);
|
|
74
|
-
(0, _defineProperty2["default"])(UndoRedo, "propTypes", {
|
|
75
|
-
className: _propTypes["default"].string,
|
|
76
|
-
onUndo: _propTypes["default"].func.isRequired,
|
|
77
|
-
onRedo: _propTypes["default"].func.isRequired,
|
|
78
|
-
onReset: _propTypes["default"].func.isRequired,
|
|
79
|
-
language: _propTypes["default"].string
|
|
80
|
-
});
|
|
81
|
-
(0, _defineProperty2["default"])(UndoRedo, "defaultProps", {});
|
|
82
|
-
var _default = exports["default"] = UndoRedo;
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfY2xhc3NuYW1lcyIsIl9CdXR0b24iLCJfc3R5bGVzIiwiX3JlbmRlclVpIiwiX3RyYW5zbGF0b3IiLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsInRyYW5zbGF0b3IiLCJUcmFuc2xhdG9yIiwiU3R5bGVkQnV0dG9uIiwic3R5bGVkIiwiQnV0dG9uIiwiX3JlZiIsInRoZW1lIiwiY29sb3IiLCJ0ZXh0IiwiZm9udFdlaWdodCIsIm1hcmdpbkJvdHRvbSIsInNwYWNpbmciLCJtYXJnaW5SaWdodCIsIlVuZG9SZWRvIiwiZXhwb3J0cyIsIl9SZWFjdCRDb21wb25lbnQiLCJfY2xhc3NDYWxsQ2hlY2syIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsInJlbmRlciIsIl90aGlzJHByb3BzIiwicHJvcHMiLCJjbGFzc05hbWUiLCJvblVuZG8iLCJvblJlZG8iLCJvblJlc2V0IiwibGFuZ3VhZ2UiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lcyIsIm9uQ2xpY2siLCJsbmciLCJSZWFjdCIsIkNvbXBvbmVudCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJmdW5jIiwiaXNSZXF1aXJlZCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL3VuZG8tcmVkby5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuaW1wb3J0IFRyYW5zbGF0b3IgZnJvbSAnQHBpZS1saWIvdHJhbnNsYXRvcic7XG5cbmNvbnN0IHsgdHJhbnNsYXRvciB9ID0gVHJhbnNsYXRvcjtcblxuY29uc3QgU3R5bGVkQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxuICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcoMC41KSxcbiAgJyY6bm90KDpsYXN0LW9mLXR5cGUpJzoge1xuICAgIG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjaW5nKDAuNSksXG4gIH0sXG59KSk7XG5cbmV4cG9ydCBjbGFzcyBVbmRvUmVkbyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG9uVW5kbzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblJlZG86IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25SZXNldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBsYW5ndWFnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgfTtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHt9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgb25VbmRvLCBvblJlZG8sIG9uUmVzZXQsIGxhbmd1YWdlIH0gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc05hbWUpfT5cbiAgICAgICAgPFN0eWxlZEJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBvblVuZG8odHJ1ZSl9PlxuICAgICAgICAgIHt0cmFuc2xhdG9yLnQoJ2NvbW1vbjp1bmRvJywgeyBsbmc6IGxhbmd1YWdlIH0pfVxuICAgICAgICA8L1N0eWxlZEJ1dHRvbj5cbiAgICAgICAgPFN0eWxlZEJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBvblJlZG8odHJ1ZSl9PlxuICAgICAgICAgIHt0cmFuc2xhdG9yLnQoJ2dyYXBoaW5nLnJlZG8nLCB7IGxuZzogbGFuZ3VhZ2UgfSl9XG4gICAgICAgIDwvU3R5bGVkQnV0dG9uPlxuICAgICAgICA8U3R5bGVkQnV0dG9uIG9uQ2xpY2s9eygpID0+IG9uUmVzZXQoKX0+XG4gICAgICAgICAge3RyYW5zbGF0b3IudCgnZ3JhcGhpbmcucmVzZXQnLCB7IGxuZzogbGFuZ3VhZ2UgfSl9XG4gICAgICAgIDwvU3R5bGVkQnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBVbmRvUmVkbztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUE2QyxTQUFBTyxXQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBRCxDQUFBLE9BQUFFLGdCQUFBLGFBQUFGLENBQUEsT0FBQUcsMkJBQUEsYUFBQUosQ0FBQSxF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
|
package/lib/undo-redo.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"undo-redo.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_Button","_styles","_renderUi","_translator","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","translator","Translator","StyledButton","styled","Button","_ref","theme","color","text","fontWeight","marginBottom","spacing","marginRight","UndoRedo","exports","_React$Component","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","render","_this$props","props","className","onUndo","onRedo","onReset","language","createElement","classNames","onClick","lng","React","Component","_defineProperty2","PropTypes","string","func","isRequired","_default"],"sources":["../src/undo-redo.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n color: color.text(),\n fontWeight: 'bold',\n marginBottom: theme.spacing(0.5),\n '&:not(:last-of-type)': {\n marginRight: theme.spacing(0.5),\n },\n}));\n\nexport class UndoRedo extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n onUndo: PropTypes.func.isRequired,\n onRedo: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n language: PropTypes.string,\n };\n static defaultProps = {};\n\n render() {\n const { className, onUndo, onRedo, onReset, language } = this.props;\n return (\n <div className={classNames(className)}>\n <StyledButton onClick={() => onUndo(true)}>\n {translator.t('common:undo', { lng: language })}\n </StyledButton>\n <StyledButton onClick={() => onRedo(true)}>\n {translator.t('graphing.redo', { lng: language })}\n </StyledButton>\n <StyledButton onClick={() => onReset()}>\n {translator.t('graphing.reset', { lng: language })}\n </StyledButton>\n </div>\n );\n }\n}\n\nexport default UndoRedo;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/use-debounce.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.useDebounce = void 0;
|
|
8
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var _react = require("react");
|
|
10
|
-
var useDebounce = exports.useDebounce = function useDebounce(value, delay) {
|
|
11
|
-
var _useState = (0, _react.useState)(value),
|
|
12
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
13
|
-
debouncedValue = _useState2[0],
|
|
14
|
-
setDebouncedValue = _useState2[1];
|
|
15
|
-
(0, _react.useEffect)(function () {
|
|
16
|
-
var handler = setTimeout(function () {
|
|
17
|
-
setDebouncedValue(value);
|
|
18
|
-
}, delay);
|
|
19
|
-
return function () {
|
|
20
|
-
return clearTimeout(handler);
|
|
21
|
-
};
|
|
22
|
-
}, [value]);
|
|
23
|
-
return debouncedValue;
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlRGVib3VuY2UiLCJleHBvcnRzIiwidmFsdWUiLCJkZWxheSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlYm91bmNlZFZhbHVlIiwic2V0RGVib3VuY2VkVmFsdWUiLCJ1c2VFZmZlY3QiLCJoYW5kbGVyIiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtZGVib3VuY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IHVzZURlYm91bmNlID0gKHZhbHVlLCBkZWxheSkgPT4ge1xuICBjb25zdCBbZGVib3VuY2VkVmFsdWUsIHNldERlYm91bmNlZFZhbHVlXSA9IHVzZVN0YXRlKHZhbHVlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNldERlYm91bmNlZFZhbHVlKHZhbHVlKTtcbiAgICB9LCBkZWxheSk7XG4gICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dChoYW5kbGVyKTtcbiAgfSwgW3ZhbHVlXSk7XG4gIHJldHVybiBkZWJvdW5jZWRWYWx1ZTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRU8sSUFBTUMsV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsR0FBRyxTQUFkQSxXQUFXQSxDQUFJRSxLQUFLLEVBQUVDLEtBQUssRUFBSztFQUMzQyxJQUFBQyxTQUFBLEdBQTRDLElBQUFDLGVBQVEsRUFBQ0gsS0FBSyxDQUFDO0lBQUFJLFVBQUEsT0FBQUMsZUFBQSxhQUFBSCxTQUFBO0lBQXBESSxjQUFjLEdBQUFGLFVBQUE7SUFBRUcsaUJBQWlCLEdBQUFILFVBQUE7RUFFeEMsSUFBQUksZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBTUMsT0FBTyxHQUFHQyxVQUFVLENBQUMsWUFBTTtNQUMvQkgsaUJBQWlCLENBQUNQLEtBQUssQ0FBQztJQUMxQixDQUFDLEVBQUVDLEtBQUssQ0FBQztJQUNULE9BQU87TUFBQSxPQUFNVSxZQUFZLENBQUNGLE9BQU8sQ0FBQztJQUFBO0VBQ3BDLENBQUMsRUFBRSxDQUFDVCxLQUFLLENBQUMsQ0FBQztFQUNYLE9BQU9NLGNBQWM7QUFDdkIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/use-debounce.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-debounce.js","names":["_react","require","useDebounce","exports","value","delay","_useState","useState","_useState2","_slicedToArray2","debouncedValue","setDebouncedValue","useEffect","handler","setTimeout","clearTimeout"],"sources":["../src/use-debounce.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nexport const useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => clearTimeout(handler);\n }, [value]);\n return debouncedValue;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAIE,KAAK,EAAEC,KAAK,EAAK;EAC3C,IAAAC,SAAA,GAA4C,IAAAC,eAAQ,EAACH,KAAK,CAAC;IAAAI,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAApDI,cAAc,GAAAF,UAAA;IAAEG,iBAAiB,GAAAH,UAAA;EAExC,IAAAI,gBAAS,EAAC,YAAM;IACd,IAAMC,OAAO,GAAGC,UAAU,CAAC,YAAM;MAC/BH,iBAAiB,CAACP,KAAK,CAAC;IAC1B,CAAC,EAAEC,KAAK,CAAC;IACT,OAAO;MAAA,OAAMU,YAAY,CAACF,OAAO,CAAC;IAAA;EACpC,CAAC,EAAE,CAACT,KAAK,CAAC,CAAC;EACX,OAAOM,cAAc;AACvB,CAAC","ignoreList":[]}
|
package/lib/utils.js
DELETED
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.tickCount = exports.thinnerShapesNeeded = exports.sameAxes = exports.roundNumber = exports.polygonToArea = exports.pointsToArea = exports.point = exports.lineToArea = exports.isDuplicatedMark = exports.isDomainRangeEqual = exports.getTickValues = exports.getRightestPoints = exports.getMiddleOfTwoPoints = exports.getDistanceBetweenTwoPoints = exports.getAngleDeg = exports.getAdjustedGraphLimits = exports.findLongestWord = exports.equalPoints = exports.countWords = exports.bounds = exports.arrowDimensions = exports.amountToIncreaseWidth = void 0;
|
|
8
|
-
var _head = _interopRequireDefault(require("lodash/head"));
|
|
9
|
-
var _tail = _interopRequireDefault(require("lodash/tail"));
|
|
10
|
-
var _plot = require("@pie-lib/plot");
|
|
11
|
-
var _invariant = _interopRequireDefault(require("invariant"));
|
|
12
|
-
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
13
|
-
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
14
|
-
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
15
|
-
var tickCount = exports.tickCount = _plot.utils.tickCount;
|
|
16
|
-
var bounds = exports.bounds = _plot.utils.bounds;
|
|
17
|
-
var point = exports.point = _plot.utils.point;
|
|
18
|
-
|
|
19
|
-
//TODO: This can be removed?
|
|
20
|
-
var getAngleDeg = exports.getAngleDeg = function getAngleDeg() {
|
|
21
|
-
return 0;
|
|
22
|
-
};
|
|
23
|
-
//TODO: This can be removed?
|
|
24
|
-
var arrowDimensions = exports.arrowDimensions = function arrowDimensions() {
|
|
25
|
-
return 0;
|
|
26
|
-
};
|
|
27
|
-
var getTickValues = exports.getTickValues = function getTickValues(prop) {
|
|
28
|
-
var tickValues = [];
|
|
29
|
-
var tickVal = 0;
|
|
30
|
-
while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {
|
|
31
|
-
tickValues.push(tickVal);
|
|
32
|
-
tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;
|
|
33
|
-
}
|
|
34
|
-
tickVal = Math.round(prop.step * 10000) / 10000;
|
|
35
|
-
while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {
|
|
36
|
-
tickValues.push(tickVal);
|
|
37
|
-
tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// return only ticks that are inside the min-max interval
|
|
41
|
-
if (tickValues) {
|
|
42
|
-
return tickValues.filter(function (tV) {
|
|
43
|
-
return tV >= prop.min && tV <= prop.max;
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
return [];
|
|
47
|
-
};
|
|
48
|
-
var countWords = exports.countWords = function countWords(label) {
|
|
49
|
-
if (label == null || (0, _isEmpty["default"])(label)) {
|
|
50
|
-
return 1;
|
|
51
|
-
}
|
|
52
|
-
var words = label.split(' ');
|
|
53
|
-
return words.length;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
// findLongestWord is also used in plot
|
|
57
|
-
var findLongestWord = exports.findLongestWord = function findLongestWord(label) {
|
|
58
|
-
var longestWord = (label || '').replace(/<[^>]+>/g, '').split(' ').sort(function (a, b) {
|
|
59
|
-
return b.length - a.length;
|
|
60
|
-
});
|
|
61
|
-
return longestWord[0].length;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// amountToIncreaseWidth is also used in plot
|
|
65
|
-
var amountToIncreaseWidth = exports.amountToIncreaseWidth = function amountToIncreaseWidth(longestWord) {
|
|
66
|
-
if (!longestWord) {
|
|
67
|
-
return 0;
|
|
68
|
-
}
|
|
69
|
-
return longestWord * 10;
|
|
70
|
-
};
|
|
71
|
-
var polygonToArea = exports.polygonToArea = function polygonToArea(points) {
|
|
72
|
-
var h = (0, _head["default"])(points);
|
|
73
|
-
var area = {
|
|
74
|
-
left: h.x,
|
|
75
|
-
top: h.y,
|
|
76
|
-
bottom: h.y,
|
|
77
|
-
right: h.x
|
|
78
|
-
};
|
|
79
|
-
return (0, _tail["default"])(points).reduce(function (a, p) {
|
|
80
|
-
a.left = Math.min(a.left, p.x);
|
|
81
|
-
a.top = Math.max(a.top, p.y);
|
|
82
|
-
a.bottom = Math.min(a.bottom, p.y);
|
|
83
|
-
a.right = Math.max(a.right, p.x);
|
|
84
|
-
return a;
|
|
85
|
-
}, area);
|
|
86
|
-
};
|
|
87
|
-
var lineToArea = exports.lineToArea = function lineToArea(from, to) {
|
|
88
|
-
return pointsToArea(from, to);
|
|
89
|
-
};
|
|
90
|
-
var pointsToArea = exports.pointsToArea = function pointsToArea(a, b) {
|
|
91
|
-
(0, _invariant["default"])(!!a && !!b, 'a or b is undefined');
|
|
92
|
-
var left = Math.min(a.x, b.x);
|
|
93
|
-
var top = Math.max(a.y, b.y);
|
|
94
|
-
var bottom = Math.min(a.y, b.y);
|
|
95
|
-
var right = Math.max(a.x, b.x);
|
|
96
|
-
return {
|
|
97
|
-
left: left,
|
|
98
|
-
top: top,
|
|
99
|
-
bottom: bottom,
|
|
100
|
-
right: right
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
var isDomainRangeEqual = exports.isDomainRangeEqual = function isDomainRangeEqual(graphProps, nextGraphProps) {
|
|
104
|
-
return (0, _isEqual["default"])(graphProps.domain, nextGraphProps.domain) && (0, _isEqual["default"])(graphProps.range, nextGraphProps.range);
|
|
105
|
-
};
|
|
106
|
-
var getRightestPoints = exports.getRightestPoints = function getRightestPoints(points) {
|
|
107
|
-
var sortedPoints = (0, _cloneDeep["default"])(points);
|
|
108
|
-
sortedPoints.sort(function (a, b) {
|
|
109
|
-
return b.x - a.x;
|
|
110
|
-
});
|
|
111
|
-
return {
|
|
112
|
-
a: sortedPoints[0],
|
|
113
|
-
b: sortedPoints[1]
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
var getMiddleOfTwoPoints = exports.getMiddleOfTwoPoints = function getMiddleOfTwoPoints(a, b) {
|
|
117
|
-
return {
|
|
118
|
-
x: (a.x + b.x) / 2,
|
|
119
|
-
y: (a.y + b.y) / 2
|
|
120
|
-
};
|
|
121
|
-
};
|
|
122
|
-
var roundNumber = exports.roundNumber = function roundNumber(number) {
|
|
123
|
-
return parseFloat(number.toFixed(4));
|
|
124
|
-
};
|
|
125
|
-
var sameAxes = exports.sameAxes = function sameAxes(p1, p2) {
|
|
126
|
-
return p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));
|
|
127
|
-
};
|
|
128
|
-
var equalPoints = exports.equalPoints = function equalPoints(p1, p2) {
|
|
129
|
-
return p1 && p2 && (0, _isEqual["default"])({
|
|
130
|
-
x: roundNumber(p1.x),
|
|
131
|
-
y: roundNumber(p1.y)
|
|
132
|
-
}, {
|
|
133
|
-
x: roundNumber(p2.x),
|
|
134
|
-
y: roundNumber(p2.y)
|
|
135
|
-
});
|
|
136
|
-
};
|
|
137
|
-
var getDistanceBetweenTicks = function getDistanceBetweenTicks(axis, size) {
|
|
138
|
-
var min = axis.min,
|
|
139
|
-
max = axis.max,
|
|
140
|
-
step = axis.step;
|
|
141
|
-
var nbOfTicks = (max - min) / step;
|
|
142
|
-
return size / nbOfTicks;
|
|
143
|
-
};
|
|
144
|
-
var thinnerShapesNeeded = exports.thinnerShapesNeeded = function thinnerShapesNeeded(graphProps) {
|
|
145
|
-
var domain = graphProps.domain,
|
|
146
|
-
range = graphProps.range,
|
|
147
|
-
_graphProps$size = graphProps.size,
|
|
148
|
-
width = _graphProps$size.width,
|
|
149
|
-
height = _graphProps$size.height;
|
|
150
|
-
|
|
151
|
-
// 14 is the default width of a point
|
|
152
|
-
return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;
|
|
153
|
-
};
|
|
154
|
-
var getAdjustedGraphLimits = exports.getAdjustedGraphLimits = function getAdjustedGraphLimits(graphProps) {
|
|
155
|
-
var domain = graphProps.domain,
|
|
156
|
-
range = graphProps.range,
|
|
157
|
-
_graphProps$size2 = graphProps.size,
|
|
158
|
-
width = _graphProps$size2.width,
|
|
159
|
-
height = _graphProps$size2.height;
|
|
160
|
-
var domainTicksDistance = getDistanceBetweenTicks(domain, width);
|
|
161
|
-
var rangeTicksDistance = getDistanceBetweenTicks(range, height);
|
|
162
|
-
|
|
163
|
-
// 15 is the distance required for the arrow to extend the graph
|
|
164
|
-
var domainPadding = domain.step / (domainTicksDistance / 15);
|
|
165
|
-
var rangePadding = range.step / (rangeTicksDistance / 15);
|
|
166
|
-
return {
|
|
167
|
-
domain: {
|
|
168
|
-
min: domain.min - domainPadding,
|
|
169
|
-
max: domain.max + domainPadding
|
|
170
|
-
},
|
|
171
|
-
range: {
|
|
172
|
-
min: range.min - rangePadding,
|
|
173
|
-
max: range.max + rangePadding
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
};
|
|
177
|
-
var getDistanceBetweenTwoPoints = exports.getDistanceBetweenTwoPoints = function getDistanceBetweenTwoPoints(a, b) {
|
|
178
|
-
return Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));
|
|
179
|
-
};
|
|
180
|
-
var sortPoints = function sortPoints(array) {
|
|
181
|
-
return (array || []).sort(function (a, b) {
|
|
182
|
-
return a.x - b.x || a.y - b.y;
|
|
183
|
-
});
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)
|
|
187
|
-
var checkCollinearity = function checkCollinearity(a, b, c) {
|
|
188
|
-
return (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
// 2 lines are overlapping if all 4 points are collinear
|
|
192
|
-
var isSameLine = function isSameLine(markA, markB) {
|
|
193
|
-
return checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);
|
|
194
|
-
};
|
|
195
|
-
var isSameCircle = function isSameCircle(markA, markB) {
|
|
196
|
-
return equalPoints(markA.root, markB.root) && getDistanceBetweenTwoPoints(markB.root, markB.edge) === getDistanceBetweenTwoPoints(markA.root, markA.edge);
|
|
197
|
-
};
|
|
198
|
-
var isDuplicatedMark = exports.isDuplicatedMark = function isDuplicatedMark(mark, marks, oldMark) {
|
|
199
|
-
var type = mark.type,
|
|
200
|
-
building = mark.building;
|
|
201
|
-
if (building) {
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
var filteredMarks = (marks || []).filter(function (m) {
|
|
205
|
-
return m.type === type && !m.building;
|
|
206
|
-
});
|
|
207
|
-
var index = filteredMarks.findIndex(function (m) {
|
|
208
|
-
return (0, _isEqual["default"])(m, oldMark);
|
|
209
|
-
});
|
|
210
|
-
if (index !== -1) {
|
|
211
|
-
filteredMarks.splice(index, 1);
|
|
212
|
-
}
|
|
213
|
-
var duplicated = filteredMarks.find(function (m) {
|
|
214
|
-
if (type === 'circle' || type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') {
|
|
215
|
-
var root = mark.root,
|
|
216
|
-
edge = mark.edge;
|
|
217
|
-
return equalPoints(root, m.root) && equalPoints(edge, m.edge) || type === 'circle' && isSameCircle(m, mark);
|
|
218
|
-
} else if (type === 'line' || type === 'ray' || type === 'segment' || type === 'vector') {
|
|
219
|
-
var from = mark.from,
|
|
220
|
-
to = mark.to;
|
|
221
|
-
return equalPoints(from, m.from) && equalPoints(to, m.to) || equalPoints(from, m.to) && equalPoints(to, m.from) || type === 'line' && isSameLine(m, mark);
|
|
222
|
-
} else if (type === 'polygon') {
|
|
223
|
-
return (0, _isEqual["default"])(sortPoints((0, _cloneDeep["default"])(mark.points)), sortPoints((0, _cloneDeep["default"])(m.points)));
|
|
224
|
-
} else if (type === 'point') {
|
|
225
|
-
return equalPoints(m, mark);
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
return !!duplicated;
|
|
229
|
-
};
|
|
230
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaGVhZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3RhaWwiLCJfcGxvdCIsIl9pbnZhcmlhbnQiLCJfaXNFcXVhbCIsIl9pc0VtcHR5IiwiX2Nsb25lRGVlcCIsInRpY2tDb3VudCIsImV4cG9ydHMiLCJ1dGlscyIsImJvdW5kcyIsInBvaW50IiwiZ2V0QW5nbGVEZWciLCJhcnJvd0RpbWVuc2lvbnMiLCJnZXRUaWNrVmFsdWVzIiwicHJvcCIsInRpY2tWYWx1ZXMiLCJ0aWNrVmFsIiwibWluIiwiaW5kZXhPZiIsInB1c2giLCJNYXRoIiwicm91bmQiLCJzdGVwIiwibWF4IiwiZmlsdGVyIiwidFYiLCJjb3VudFdvcmRzIiwibGFiZWwiLCJpc0VtcHR5Iiwid29yZHMiLCJzcGxpdCIsImxlbmd0aCIsImZpbmRMb25nZXN0V29yZCIsImxvbmdlc3RXb3JkIiwicmVwbGFjZSIsInNvcnQiLCJhIiwiYiIsImFtb3VudFRvSW5jcmVhc2VXaWR0aCIsInBvbHlnb25Ub0FyZWEiLCJwb2ludHMiLCJoIiwiaGVhZCIsImFyZWEiLCJsZWZ0IiwieCIsInRvcCIsInkiLCJib3R0b20iLCJyaWdodCIsInRhaWwiLCJyZWR1Y2UiLCJwIiwibGluZVRvQXJlYSIsImZyb20iLCJ0byIsInBvaW50c1RvQXJlYSIsImludmFyaWFudCIsImlzRG9tYWluUmFuZ2VFcXVhbCIsImdyYXBoUHJvcHMiLCJuZXh0R3JhcGhQcm9wcyIsImlzRXF1YWwiLCJkb21haW4iLCJyYW5nZSIsImdldFJpZ2h0ZXN0UG9pbnRzIiwic29ydGVkUG9pbnRzIiwiY2xvbmVEZWVwIiwiZ2V0TWlkZGxlT2ZUd29Qb2ludHMiLCJyb3VuZE51bWJlciIsIm51bWJlciIsInBhcnNlRmxvYXQiLCJ0b0ZpeGVkIiwic2FtZUF4ZXMiLCJwMSIsInAyIiwiZXF1YWxQb2ludHMiLCJnZXREaXN0YW5jZUJldHdlZW5UaWNrcyIsImF4aXMiLCJzaXplIiwibmJPZlRpY2tzIiwidGhpbm5lclNoYXBlc05lZWRlZCIsIl9ncmFwaFByb3BzJHNpemUiLCJ3aWR0aCIsImhlaWdodCIsImdldEFkanVzdGVkR3JhcGhMaW1pdHMiLCJfZ3JhcGhQcm9wcyRzaXplMiIsImRvbWFpblRpY2tzRGlzdGFuY2UiLCJyYW5nZVRpY2tzRGlzdGFuY2UiLCJkb21haW5QYWRkaW5nIiwicmFuZ2VQYWRkaW5nIiwiZ2V0RGlzdGFuY2VCZXR3ZWVuVHdvUG9pbnRzIiwic3FydCIsInNvcnRQb2ludHMiLCJhcnJheSIsImNoZWNrQ29sbGluZWFyaXR5IiwiYyIsImlzU2FtZUxpbmUiLCJtYXJrQSIsIm1hcmtCIiwiaXNTYW1lQ2lyY2xlIiwicm9vdCIsImVkZ2UiLCJpc0R1cGxpY2F0ZWRNYXJrIiwibWFyayIsIm1hcmtzIiwib2xkTWFyayIsInR5cGUiLCJidWlsZGluZyIsImZpbHRlcmVkTWFya3MiLCJtIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJzcGxpY2UiLCJkdXBsaWNhdGVkIiwiZmluZCJdLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaGVhZCBmcm9tICdsb2Rhc2gvaGVhZCc7XG5pbXBvcnQgdGFpbCBmcm9tICdsb2Rhc2gvdGFpbCc7XG5pbXBvcnQgeyB1dGlscyB9IGZyb20gJ0BwaWUtbGliL3Bsb3QnO1xuaW1wb3J0IGludmFyaWFudCBmcm9tICdpbnZhcmlhbnQnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcblxuZXhwb3J0IGNvbnN0IHRpY2tDb3VudCA9IHV0aWxzLnRpY2tDb3VudDtcbmV4cG9ydCBjb25zdCBib3VuZHMgPSB1dGlscy5ib3VuZHM7XG5leHBvcnQgY29uc3QgcG9pbnQgPSB1dGlscy5wb2ludDtcblxuLy9UT0RPOiBUaGlzIGNhbiBiZSByZW1vdmVkP1xuZXhwb3J0IGNvbnN0IGdldEFuZ2xlRGVnID0gKCkgPT4gMDtcbi8vVE9ETzogVGhpcyBjYW4gYmUgcmVtb3ZlZD9cbmV4cG9ydCBjb25zdCBhcnJvd0RpbWVuc2lvbnMgPSAoKSA9PiAwO1xuXG5leHBvcnQgY29uc3QgZ2V0VGlja1ZhbHVlcyA9IChwcm9wKSA9PiB7XG4gIGNvbnN0IHRpY2tWYWx1ZXMgPSBbXTtcbiAgbGV0IHRpY2tWYWwgPSAwO1xuXG4gIHdoaWxlICh0aWNrVmFsID49IHByb3AubWluICYmIHRpY2tWYWx1ZXMuaW5kZXhPZih0aWNrVmFsKSA8IDApIHtcbiAgICB0aWNrVmFsdWVzLnB1c2godGlja1ZhbCk7XG4gICAgdGlja1ZhbCA9IE1hdGgucm91bmQoKHRpY2tWYWwgLSBwcm9wLnN0ZXApICogMTAwMDApIC8gMTAwMDA7XG4gIH1cblxuICB0aWNrVmFsID0gTWF0aC5yb3VuZChwcm9wLnN0ZXAgKiAxMDAwMCkgLyAxMDAwMDtcblxuICB3aGlsZSAodGlja1ZhbCA8PSBwcm9wLm1heCAmJiB0aWNrVmFsdWVzLmluZGV4T2YodGlja1ZhbCkgPCAwKSB7XG4gICAgdGlja1ZhbHVlcy5wdXNoKHRpY2tWYWwpO1xuICAgIHRpY2tWYWwgPSBNYXRoLnJvdW5kKCh0aWNrVmFsICsgcHJvcC5zdGVwKSAqIDEwMDAwKSAvIDEwMDAwO1xuICB9XG5cbiAgLy8gcmV0dXJuIG9ubHkgdGlja3MgdGhhdCBhcmUgaW5zaWRlIHRoZSBtaW4tbWF4IGludGVydmFsXG4gIGlmICh0aWNrVmFsdWVzKSB7XG4gICAgcmV0dXJuIHRpY2tWYWx1ZXMuZmlsdGVyKCh0VikgPT4gdFYgPj0gcHJvcC5taW4gJiYgdFYgPD0gcHJvcC5tYXgpO1xuICB9XG5cbiAgcmV0dXJuIFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvdW50V29yZHMgPSAobGFiZWwpID0+IHtcbiAgaWYgKGxhYmVsID09IG51bGwgfHwgaXNFbXB0eShsYWJlbCkpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIGNvbnN0IHdvcmRzID0gbGFiZWwuc3BsaXQoJyAnKTtcbiAgcmV0dXJuIHdvcmRzLmxlbmd0aDtcbn07XG5cbi8vIGZpbmRMb25nZXN0V29yZCBpcyBhbHNvIHVzZWQgaW4gcGxvdFxuZXhwb3J0IGNvbnN0IGZpbmRMb25nZXN0V29yZCA9IChsYWJlbCkgPT4ge1xuICBsZXQgbG9uZ2VzdFdvcmQgPSAobGFiZWwgfHwgJycpXG4gICAgLnJlcGxhY2UoLzxbXj5dKz4vZywgJycpXG4gICAgLnNwbGl0KCcgJylcbiAgICAuc29ydCgoYSwgYikgPT4gYi5sZW5ndGggLSBhLmxlbmd0aCk7XG5cbiAgcmV0dXJuIGxvbmdlc3RXb3JkWzBdLmxlbmd0aDtcbn07XG5cbi8vIGFtb3VudFRvSW5jcmVhc2VXaWR0aCBpcyBhbHNvIHVzZWQgaW4gcGxvdFxuZXhwb3J0IGNvbnN0IGFtb3VudFRvSW5jcmVhc2VXaWR0aCA9IChsb25nZXN0V29yZCkgPT4ge1xuICBpZiAoIWxvbmdlc3RXb3JkKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gbG9uZ2VzdFdvcmQgKiAxMDtcbn07XG5cbmV4cG9ydCBjb25zdCBwb2x5Z29uVG9BcmVhID0gKHBvaW50cykgPT4ge1xuICBjb25zdCBoID0gaGVhZChwb2ludHMpO1xuICBjb25zdCBhcmVhID0ge1xuICAgIGxlZnQ6IGgueCxcbiAgICB0b3A6IGgueSxcbiAgICBib3R0b206IGgueSxcbiAgICByaWdodDogaC54LFxuICB9O1xuICByZXR1cm4gdGFpbChwb2ludHMpLnJlZHVjZSgoYSwgcCkgPT4ge1xuICAgIGEubGVmdCA9IE1hdGgubWluKGEubGVmdCwgcC54KTtcbiAgICBhLnRvcCA9IE1hdGgubWF4KGEudG9wLCBwLnkpO1xuICAgIGEuYm90dG9tID0gTWF0aC5taW4oYS5ib3R0b20sIHAueSk7XG4gICAgYS5yaWdodCA9IE1hdGgubWF4KGEucmlnaHQsIHAueCk7XG4gICAgcmV0dXJuIGE7XG4gIH0sIGFyZWEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGxpbmVUb0FyZWEgPSAoZnJvbSwgdG8pID0+IHBvaW50c1RvQXJlYShmcm9tLCB0byk7XG5cbmV4cG9ydCBjb25zdCBwb2ludHNUb0FyZWEgPSAoYSwgYikgPT4ge1xuICBpbnZhcmlhbnQoISFhICYmICEhYiwgJ2Egb3IgYiBpcyB1bmRlZmluZWQnKTtcbiAgY29uc3QgbGVmdCA9IE1hdGgubWluKGEueCwgYi54KTtcbiAgY29uc3QgdG9wID0gTWF0aC5tYXgoYS55LCBiLnkpO1xuICBjb25zdCBib3R0b20gPSBNYXRoLm1pbihhLnksIGIueSk7XG4gIGNvbnN0IHJpZ2h0ID0gTWF0aC5tYXgoYS54LCBiLngpO1xuICByZXR1cm4geyBsZWZ0LCB0b3AsIGJvdHRvbSwgcmlnaHQgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RvbWFpblJhbmdlRXF1YWwgPSAoZ3JhcGhQcm9wcywgbmV4dEdyYXBoUHJvcHMpID0+IHtcbiAgcmV0dXJuIGlzRXF1YWwoZ3JhcGhQcm9wcy5kb21haW4sIG5leHRHcmFwaFByb3BzLmRvbWFpbikgJiYgaXNFcXVhbChncmFwaFByb3BzLnJhbmdlLCBuZXh0R3JhcGhQcm9wcy5yYW5nZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmlnaHRlc3RQb2ludHMgPSAocG9pbnRzKSA9PiB7XG4gIGNvbnN0IHNvcnRlZFBvaW50cyA9IGNsb25lRGVlcChwb2ludHMpO1xuICBzb3J0ZWRQb2ludHMuc29ydCgoYSwgYikgPT4gYi54IC0gYS54KTtcblxuICByZXR1cm4geyBhOiBzb3J0ZWRQb2ludHNbMF0sIGI6IHNvcnRlZFBvaW50c1sxXSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1pZGRsZU9mVHdvUG9pbnRzID0gKGEsIGIpID0+ICh7XG4gIHg6IChhLnggKyBiLngpIC8gMixcbiAgeTogKGEueSArIGIueSkgLyAyLFxufSk7XG5cbmV4cG9ydCBjb25zdCByb3VuZE51bWJlciA9IChudW1iZXIpID0+IHBhcnNlRmxvYXQobnVtYmVyLnRvRml4ZWQoNCkpO1xuXG5leHBvcnQgY29uc3Qgc2FtZUF4ZXMgPSAocDEsIHAyKSA9PlxuICBwMSAmJiBwMiAmJiAocm91bmROdW1iZXIocDEueCkgPT09IHJvdW5kTnVtYmVyKHAyLngpIHx8IHJvdW5kTnVtYmVyKHAxLnkpID09PSByb3VuZE51bWJlcihwMi55KSk7XG5cbmV4cG9ydCBjb25zdCBlcXVhbFBvaW50cyA9IChwMSwgcDIpID0+XG4gIHAxICYmXG4gIHAyICYmXG4gIGlzRXF1YWwoXG4gICAge1xuICAgICAgeDogcm91bmROdW1iZXIocDEueCksXG4gICAgICB5OiByb3VuZE51bWJlcihwMS55KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHg6IHJvdW5kTnVtYmVyKHAyLngpLFxuICAgICAgeTogcm91bmROdW1iZXIocDIueSksXG4gICAgfSxcbiAgKTtcblxuY29uc3QgZ2V0RGlzdGFuY2VCZXR3ZWVuVGlja3MgPSAoYXhpcywgc2l6ZSkgPT4ge1xuICBjb25zdCB7IG1pbiwgbWF4LCBzdGVwIH0gPSBheGlzO1xuICBjb25zdCBuYk9mVGlja3MgPSAobWF4IC0gbWluKSAvIHN0ZXA7XG5cbiAgcmV0dXJuIHNpemUgLyBuYk9mVGlja3M7XG59O1xuXG5leHBvcnQgY29uc3QgdGhpbm5lclNoYXBlc05lZWRlZCA9IChncmFwaFByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBkb21haW4sXG4gICAgcmFuZ2UsXG4gICAgc2l6ZTogeyB3aWR0aCwgaGVpZ2h0IH0sXG4gIH0gPSBncmFwaFByb3BzO1xuXG4gIC8vIDE0IGlzIHRoZSBkZWZhdWx0IHdpZHRoIG9mIGEgcG9pbnRcbiAgcmV0dXJuIGdldERpc3RhbmNlQmV0d2VlblRpY2tzKGRvbWFpbiwgd2lkdGgpIDwgMTQgfHwgZ2V0RGlzdGFuY2VCZXR3ZWVuVGlja3MocmFuZ2UsIGhlaWdodCkgPCAxNDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBZGp1c3RlZEdyYXBoTGltaXRzID0gKGdyYXBoUHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGRvbWFpbixcbiAgICByYW5nZSxcbiAgICBzaXplOiB7IHdpZHRoLCBoZWlnaHQgfSxcbiAgfSA9IGdyYXBoUHJvcHM7XG4gIGNvbnN0IGRvbWFpblRpY2tzRGlzdGFuY2UgPSBnZXREaXN0YW5jZUJldHdlZW5UaWNrcyhkb21haW4sIHdpZHRoKTtcbiAgY29uc3QgcmFuZ2VUaWNrc0Rpc3RhbmNlID0gZ2V0RGlzdGFuY2VCZXR3ZWVuVGlja3MocmFuZ2UsIGhlaWdodCk7XG5cbiAgLy8gMTUgaXMgdGhlIGRpc3RhbmNlIHJlcXVpcmVkIGZvciB0aGUgYXJyb3cgdG8gZXh0ZW5kIHRoZSBncmFwaFxuICBjb25zdCBkb21haW5QYWRkaW5nID0gZG9tYWluLnN0ZXAgLyAoZG9tYWluVGlja3NEaXN0YW5jZSAvIDE1KTtcbiAgY29uc3QgcmFuZ2VQYWRkaW5nID0gcmFuZ2Uuc3RlcCAvIChyYW5nZVRpY2tzRGlzdGFuY2UgLyAxNSk7XG5cbiAgcmV0dXJuIHtcbiAgICBkb21haW46IHtcbiAgICAgIG1pbjogZG9tYWluLm1pbiAtIGRvbWFpblBhZGRpbmcsXG4gICAgICBtYXg6IGRvbWFpbi5tYXggKyBkb21haW5QYWRkaW5nLFxuICAgIH0sXG4gICAgcmFuZ2U6IHtcbiAgICAgIG1pbjogcmFuZ2UubWluIC0gcmFuZ2VQYWRkaW5nLFxuICAgICAgbWF4OiByYW5nZS5tYXggKyByYW5nZVBhZGRpbmcsXG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREaXN0YW5jZUJldHdlZW5Ud29Qb2ludHMgPSAoYSwgYikgPT4gTWF0aC5zcXJ0KChiLnggLSBhLngpICogKGIueCAtIGEueCkgKyAoYi55IC0gYS55KSAqIChiLnkgLSBhLnkpKTtcblxuY29uc3Qgc29ydFBvaW50cyA9IChhcnJheSkgPT4gKGFycmF5IHx8IFtdKS5zb3J0KChhLCBiKSA9PiBhLnggLSBiLnggfHwgYS55IC0gYi55KTtcblxuLy8gY2hlY2sgY29sbGluaWFyaXR5IG9mIDMgcG9pbnRzIChzb3VyY2U6IGh0dHBzOi8vd3d3LmdlZWtzZm9yZ2Vla3Mub3JnL3Byb2dyYW0tY2hlY2stdGhyZWUtcG9pbnRzLWNvbGxpbmVhci8pXG5jb25zdCBjaGVja0NvbGxpbmVhcml0eSA9IChhLCBiLCBjKSA9PiAoYS54IC0gYi54KSAqIChjLnkgLSBiLnkpID09PSAoYy54IC0gYi54KSAqIChhLnkgLSBiLnkpO1xuXG4vLyAyIGxpbmVzIGFyZSBvdmVybGFwcGluZyBpZiBhbGwgNCBwb2ludHMgYXJlIGNvbGxpbmVhclxuY29uc3QgaXNTYW1lTGluZSA9IChtYXJrQSwgbWFya0IpID0+XG4gIGNoZWNrQ29sbGluZWFyaXR5KG1hcmtBLmZyb20sIG1hcmtCLmZyb20sIG1hcmtCLnRvKSAmJiBjaGVja0NvbGxpbmVhcml0eShtYXJrQS50bywgbWFya0IuZnJvbSwgbWFya0IudG8pO1xuXG5jb25zdCBpc1NhbWVDaXJjbGUgPSAobWFya0EsIG1hcmtCKSA9PlxuICBlcXVhbFBvaW50cyhtYXJrQS5yb290LCBtYXJrQi5yb290KSAmJlxuICBnZXREaXN0YW5jZUJldHdlZW5Ud29Qb2ludHMobWFya0Iucm9vdCwgbWFya0IuZWRnZSkgPT09IGdldERpc3RhbmNlQmV0d2VlblR3b1BvaW50cyhtYXJrQS5yb290LCBtYXJrQS5lZGdlKTtcblxuZXhwb3J0IGNvbnN0IGlzRHVwbGljYXRlZE1hcmsgPSAobWFyaywgbWFya3MsIG9sZE1hcmspID0+IHtcbiAgY29uc3QgeyB0eXBlLCBidWlsZGluZyB9ID0gbWFyaztcblxuICBpZiAoYnVpbGRpbmcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBmaWx0ZXJlZE1hcmtzID0gKG1hcmtzIHx8IFtdKS5maWx0ZXIoKG0pID0+IG0udHlwZSA9PT0gdHlwZSAmJiAhbS5idWlsZGluZyk7XG4gIGNvbnN0IGluZGV4ID0gZmlsdGVyZWRNYXJrcy5maW5kSW5kZXgoKG0pID0+IGlzRXF1YWwobSwgb2xkTWFyaykpO1xuXG4gIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICBmaWx0ZXJlZE1hcmtzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICBjb25zdCBkdXBsaWNhdGVkID0gZmlsdGVyZWRNYXJrcy5maW5kKChtKSA9PiB7XG4gICAgaWYgKHR5cGUgPT09ICdjaXJjbGUnIHx8IHR5cGUgPT09ICdwYXJhYm9sYScgfHwgdHlwZSA9PT0gJ3NpbmUnIHx8IHR5cGUgPT09ICdhYnNvbHV0ZScgfHwgdHlwZSA9PT0gJ2V4cG9uZW50aWFsJykge1xuICAgICAgY29uc3QgeyByb290LCBlZGdlIH0gPSBtYXJrO1xuXG4gICAgICByZXR1cm4gKGVxdWFsUG9pbnRzKHJvb3QsIG0ucm9vdCkgJiYgZXF1YWxQb2ludHMoZWRnZSwgbS5lZGdlKSkgfHwgKHR5cGUgPT09ICdjaXJjbGUnICYmIGlzU2FtZUNpcmNsZShtLCBtYXJrKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnbGluZScgfHwgdHlwZSA9PT0gJ3JheScgfHwgdHlwZSA9PT0gJ3NlZ21lbnQnIHx8IHR5cGUgPT09ICd2ZWN0b3InKSB7XG4gICAgICBjb25zdCB7IGZyb20sIHRvIH0gPSBtYXJrO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICAoZXF1YWxQb2ludHMoZnJvbSwgbS5mcm9tKSAmJiBlcXVhbFBvaW50cyh0bywgbS50bykpIHx8XG4gICAgICAgIChlcXVhbFBvaW50cyhmcm9tLCBtLnRvKSAmJiBlcXVhbFBvaW50cyh0bywgbS5mcm9tKSkgfHxcbiAgICAgICAgKHR5cGUgPT09ICdsaW5lJyAmJiBpc1NhbWVMaW5lKG0sIG1hcmspKVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdwb2x5Z29uJykge1xuICAgICAgcmV0dXJuIGlzRXF1YWwoc29ydFBvaW50cyhjbG9uZURlZXAobWFyay5wb2ludHMpKSwgc29ydFBvaW50cyhjbG9uZURlZXAobS5wb2ludHMpKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAncG9pbnQnKSB7XG4gICAgICByZXR1cm4gZXF1YWxQb2ludHMobSwgbWFyayk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gISFk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QVFOLElBQUksR0FBV0csSUFBSSxDQUFuQkgsSUFBSTtRQUFFQyxJQUFJLEdBQUtFLElBQUksQ0FBYkYsSUFBSTtNQUVsQixPQUFRMUIsV0FBVyxDQUFDeUIsSUFBSSxFQUFFUyxDQUFDLENBQUNULElBQUksQ0FBQyxJQUFJekIsV0FBVyxDQUFDMEIsSUFBSSxFQUFFUSxDQUFDLENBQUNSLElBQUksQ0FBQyxJQUFNSyxJQUFJLEtBQUssUUFBUSxJQUFJUCxZQUFZLENBQUNVLENBQUMsRUFBRU4sSUFBSSxDQUFFO0lBQ2pILENBQUMsTUFBTSxJQUFJRyxJQUFJLEtBQUssTUFBTSxJQUFJQSxJQUFJLEtBQUssS0FBSyxJQUFJQSxJQUFJLEtBQUssU0FBUyxJQUFJQSxJQUFJLEtBQUssUUFBUSxFQUFFO01BQ3ZGLElBQVFwRCxJQUFJLEdBQVNpRCxJQUFJLENBQWpCakQsSUFBSTtRQUFFQyxFQUFFLEdBQUtnRCxJQUFJLENBQVhoRCxFQUFFO01BRWhCLE9BQ0dvQixXQUFXLENBQUNyQixJQUFJLEVBQUV1RCxDQUFDLENBQUN2RCxJQUFJLENBQUMsSUFBSXFCLFdBQVcsQ0FBQ3BCLEVBQUUsRUFBRXNELENBQUMsQ0FBQ3RELEVBQUUsQ0FBQyxJQUNsRG9CLFdBQVcsQ0FBQ3JCLElBQUksRUFBRXVELENBQUMsQ0FBQ3RELEVBQUUsQ0FBQyxJQUFJb0IsV0FBVyxDQUFDcEIsRUFBRSxFQUFFc0QsQ0FBQyxDQUFDdkQsSUFBSSxDQUFFLElBQ25Eb0QsSUFBSSxLQUFLLE1BQU0sSUFBSVYsVUFBVSxDQUFDYSxDQUFDLEVBQUVOLElBQUksQ0FBRTtJQUU1QyxDQUFDLE1BQU0sSUFBSUcsSUFBSSxLQUFLLFNBQVMsRUFBRTtNQUM3QixPQUFPLElBQUE3QyxtQkFBTyxFQUFDK0IsVUFBVSxDQUFDLElBQUExQixxQkFBUyxFQUFDcUMsSUFBSSxDQUFDL0QsTUFBTSxDQUFDLENBQUMsRUFBRW9ELFVBQVUsQ0FBQyxJQUFBMUIscUJBQVMsRUFBQzJDLENBQUMsQ0FBQ3JFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQyxNQUFNLElBQUlrRSxJQUFJLEtBQUssT0FBTyxFQUFFO01BQzNCLE9BQU8vQixXQUFXLENBQUNrQyxDQUFDLEVBQUVOLElBQUksQ0FBQztJQUM3QjtFQUNGLENBQUMsQ0FBQztFQUVGLE9BQU8sQ0FBQyxDQUFDVSxVQUFVO0FBQ3JCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_head","_interopRequireDefault","require","_tail","_plot","_invariant","_isEqual","_isEmpty","_cloneDeep","tickCount","exports","utils","bounds","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","label","isEmpty","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","head","area","left","x","top","y","bottom","right","tail","reduce","p","lineToArea","from","to","pointsToArea","invariant","isDomainRangeEqual","graphProps","nextGraphProps","isEqual","domain","range","getRightestPoints","sortedPoints","cloneDeep","getMiddleOfTwoPoints","roundNumber","number","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","_graphProps$size","width","height","getAdjustedGraphLimits","_graphProps$size2","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","getDistanceBetweenTwoPoints","sqrt","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","isSameCircle","root","edge","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find"],"sources":["../src/utils.js"],"sourcesContent":["import head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = (prop) => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = (label) => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return isEqual(graphProps.domain, nextGraphProps.domain) && isEqual(graphProps.range, nextGraphProps.range);\n};\n\nexport const getRightestPoints = (points) => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2,\n});\n\nexport const roundNumber = (number) => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y),\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y),\n },\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding,\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding,\n },\n };\n};\n\nexport const getDistanceBetweenTwoPoints = (a, b) => Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));\n\nconst sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);\n\nconst isSameCircle = (markA, markB) =>\n equalPoints(markA.root, markB.root) &&\n getDistanceBetweenTwoPoints(markB.root, markB.edge) === getDistanceBetweenTwoPoints(markA.root, markA.edge);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);\n const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find((m) => {\n if (type === 'circle' || type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') {\n const { root, edge } = mark;\n\n return (equalPoints(root, m.root) && equalPoints(edge, m.edge)) || (type === 'circle' && isSameCircle(m, mark));\n } else if (type === 'line' || type === 'ray' || type === 'segment' || type === 'vector') {\n const { from, to } = mark;\n\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n } else if (type === 'point') {\n return equalPoints(m, mark);\n }\n });\n\n return !!duplicated;\n};\n"],"mappings":"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","ignoreList":[]}
|