@pie-lib/plot 2.2.0 → 2.3.0
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 +11 -0
- package/lib/draggable.js +17 -26
- package/lib/draggable.js.map +1 -1
- package/lib/graph-props.js +2 -2
- package/lib/graph-props.js.map +1 -1
- package/lib/grid-draggable.js +42 -71
- package/lib/grid-draggable.js.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/root.js +49 -57
- package/lib/root.js.map +1 -1
- package/lib/trig.js +2 -2
- package/lib/trig.js.map +1 -1
- package/lib/types.js +2 -2
- package/lib/types.js.map +1 -1
- package/lib/utils.js +2 -2
- package/lib/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/root.jsx +47 -20
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.3.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@2.2.0...@pie-lib/plot@2.3.0) (2022-08-01)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **graphing, editable-html, plot:** Added the ability to edit/center title and lables PD-1605 PD-1690 ([dd18f92](https://github.com/pie-framework/pie-lib/commit/dd18f92e19d8be98917cd4f19eb7211122d2b7fb))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [2.2.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@2.1.10...@pie-lib/plot@2.2.0) (2022-05-10)
|
|
7
18
|
|
|
8
19
|
|
package/lib/draggable.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
@@ -13,52 +15,42 @@ Object.defineProperty(exports, "DraggableCore", {
|
|
|
13
15
|
});
|
|
14
16
|
exports["default"] = void 0;
|
|
15
17
|
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
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); }
|
|
19
|
-
|
|
20
|
-
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; }
|
|
21
|
-
|
|
22
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
18
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
23
19
|
|
|
24
|
-
|
|
20
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
25
21
|
|
|
26
|
-
|
|
22
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
27
23
|
|
|
28
|
-
|
|
24
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
29
25
|
|
|
30
|
-
|
|
26
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
31
27
|
|
|
32
|
-
|
|
28
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
var _reactDraggable = _interopRequireWildcard(require("react-draggable"));
|
|
35
31
|
|
|
36
|
-
function
|
|
32
|
+
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); }
|
|
37
33
|
|
|
38
|
-
function
|
|
34
|
+
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; }
|
|
39
35
|
|
|
40
|
-
function
|
|
36
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
41
37
|
|
|
42
38
|
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; } }
|
|
43
39
|
|
|
44
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
45
|
-
|
|
46
40
|
var LocalDraggable = /*#__PURE__*/function (_Draggable) {
|
|
47
|
-
|
|
41
|
+
(0, _inherits2["default"])(LocalDraggable, _Draggable);
|
|
48
42
|
|
|
49
43
|
var _super = _createSuper(LocalDraggable);
|
|
50
44
|
|
|
51
45
|
function LocalDraggable() {
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
(0, _classCallCheck2["default"])(this, LocalDraggable);
|
|
54
47
|
return _super.apply(this, arguments);
|
|
55
48
|
}
|
|
56
49
|
|
|
57
|
-
|
|
50
|
+
(0, _createClass2["default"])(LocalDraggable, [{
|
|
58
51
|
key: "componentWillReceiveProps",
|
|
59
52
|
value: function componentWillReceiveProps(next) {
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
(0, _get2["default"])((0, _getPrototypeOf2["default"])(LocalDraggable.prototype), "componentWillReceiveProps", this).call(this, next); //Remove the x/y state as these values have now been updated and will come through as props.
|
|
62
54
|
|
|
63
55
|
this.setState({
|
|
64
56
|
x: 0,
|
|
@@ -66,7 +58,6 @@ var LocalDraggable = /*#__PURE__*/function (_Draggable) {
|
|
|
66
58
|
});
|
|
67
59
|
}
|
|
68
60
|
}]);
|
|
69
|
-
|
|
70
61
|
return LocalDraggable;
|
|
71
62
|
}(_reactDraggable["default"]);
|
|
72
63
|
|
package/lib/draggable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/draggable.jsx"],"names":["LocalDraggable","next","setState","x","y","Draggable"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/draggable.jsx"],"names":["LocalDraggable","next","setState","x","y","Draggable"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;IAEqBA,c;;;;;;;;;;;;WACnB,mCAA0BC,IAA1B,EAAgC;AAC9B,sIAAgCA,IAAhC,EAD8B,CAE9B;;AACA,WAAKC,QAAL,CAAc;AAAEC,QAAAA,CAAC,EAAE,CAAL;AAAQC,QAAAA,CAAC,EAAE;AAAX,OAAd;AACD;;;EALyCC,0B","sourcesContent":["import Draggable, { DraggableCore } from 'react-draggable';\n\nexport default class LocalDraggable extends Draggable {\n componentWillReceiveProps(next) {\n super.componentWillReceiveProps(next);\n //Remove the x/y state as these values have now been updated and will come through as props.\n this.setState({ x: 0, y: 0 });\n }\n}\n\nexport { DraggableCore };\n"],"file":"draggable.js"}
|
package/lib/graph-props.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -11,8 +13,6 @@ var _utils = require("./utils");
|
|
|
11
13
|
|
|
12
14
|
var _d3Scale = require("d3-scale");
|
|
13
15
|
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
-
|
|
16
16
|
var createSnapMinAndMax = function createSnapMinAndMax(_ref) {
|
|
17
17
|
var min = _ref.min,
|
|
18
18
|
max = _ref.max,
|
package/lib/graph-props.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph-props.js"],"names":["createSnapMinAndMax","min","max","step","parseInt","create","domain","range","size","getRootNode","domainMinMax","rangeMinMax","scale","x","width","y","height","snap","snapTo","bind"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/graph-props.js"],"names":["createSnapMinAndMax","min","max","step","parseInt","create","domain","range","size","getRootNode","domainMinMax","rangeMinMax","scale","x","width","y","height","snap","snapTo","bind"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,OAAwB;AAAA,MAArBC,GAAqB,QAArBA,GAAqB;AAAA,MAAhBC,GAAgB,QAAhBA,GAAgB;AAAA,MAAXC,IAAW,QAAXA,IAAW;AAClD;AACA;AACA,SAAO;AACLA,IAAAA,IAAI,EAAJA,IADK;AAELF,IAAAA,GAAG,EAAEG,QAAQ,CAACH,GAAG,GAAGE,IAAP,CAAR,GAAuBA,IAFvB;AAGLD,IAAAA,GAAG,EAAEE,QAAQ,CAACF,GAAG,GAAGC,IAAP,CAAR,GAAuBA;AAHvB,GAAP;AAKD,CARD;;AAUO,IAAME,MAAM,GAAG,SAATA,MAAS,CAACC,MAAD,EAASC,KAAT,EAAgBC,IAAhB,EAAsBC,WAAtB,EAAsC;AAC1D,6BAAUH,MAAM,CAACL,GAAP,GAAaK,MAAM,CAACJ,GAA9B,EAAmC,mCAAnC;AACA,6BAAUK,KAAK,CAACN,GAAN,GAAYM,KAAK,CAACL,GAA5B,EAAiC,kCAAjC;AAEA,MAAMQ,YAAY,GAAGV,mBAAmB,CAACM,MAAD,CAAxC;AACA,MAAMK,WAAW,GAAGX,mBAAmB,CAACO,KAAD,CAAvC;AAEA,MAAMK,KAAK,GAAG;AACZC,IAAAA,CAAC,EAAE,4BACAP,MADA,CACO,CAACA,MAAM,CAACL,GAAR,EAAaK,MAAM,CAACJ,GAApB,CADP,EAEAK,KAFA,CAEM,CAAC,CAAD,EAAIC,IAAI,CAACM,KAAT,CAFN,CADS;AAIZC,IAAAA,CAAC,EAAE,4BACAT,MADA,CACO,CAACC,KAAK,CAACL,GAAP,EAAYK,KAAK,CAACN,GAAlB,CADP,EAEAM,KAFA,CAEM,CAAC,CAAD,EAAIC,IAAI,CAACQ,MAAT,CAFN;AAJS,GAAd;AASA,MAAMC,IAAI,GAAG;AACXJ,IAAAA,CAAC,EAAEK,cAAOC,IAAP,CAAY,IAAZ,EAAkBT,YAAY,CAACT,GAA/B,EAAoCS,YAAY,CAACR,GAAjD,EAAsDQ,YAAY,CAACP,IAAnE,CADQ;AAEXY,IAAAA,CAAC,EAAEG,cAAOC,IAAP,CAAY,IAAZ,EAAkBR,WAAW,CAACV,GAA9B,EAAmCU,WAAW,CAACT,GAA/C,EAAoDS,WAAW,CAACR,IAAhE;AAFQ,GAAb;AAKA,SAAO;AAAES,IAAAA,KAAK,EAALA,KAAF;AAASK,IAAAA,IAAI,EAAJA,IAAT;AAAeX,IAAAA,MAAM,EAANA,MAAf;AAAuBC,IAAAA,KAAK,EAALA,KAAvB;AAA8BC,IAAAA,IAAI,EAAJA,IAA9B;AAAoCC,IAAAA,WAAW,EAAXA;AAApC,GAAP;AACD,CAtBM","sourcesContent":["import invariant from 'invariant';\nimport { snapTo } from './utils';\nimport { scaleLinear } from 'd3-scale';\n\nconst createSnapMinAndMax = ({ min, max, step }) => {\n // for graphing, if step is a value with decimals, we have to calculate the min & max for the grid taking in consideration that 0 has to be exactly in the middle\n // for example, if min: -5 & max: 5 & step: 0.75, in order to keep 0 in the middle we have to set min: -4.5 & max: 4.5\n return {\n step,\n min: parseInt(min / step) * step,\n max: parseInt(max / step) * step\n };\n};\n\nexport const create = (domain, range, size, getRootNode) => {\n invariant(domain.min < domain.max, 'domain: min must be less than max');\n invariant(range.min < range.max, 'range: min must be less than max');\n\n const domainMinMax = createSnapMinAndMax(domain);\n const rangeMinMax = createSnapMinAndMax(range);\n\n const scale = {\n x: scaleLinear()\n .domain([domain.min, domain.max])\n .range([0, size.width]),\n y: scaleLinear()\n .domain([range.max, range.min])\n .range([0, size.height])\n };\n\n const snap = {\n x: snapTo.bind(null, domainMinMax.min, domainMinMax.max, domainMinMax.step),\n y: snapTo.bind(null, rangeMinMax.min, rangeMinMax.max, rangeMinMax.step)\n };\n\n return { scale, snap, domain, range, size, getRootNode };\n};\n"],"file":"graph-props.js"}
|
package/lib/grid-draggable.js
CHANGED
|
@@ -1,12 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.gridDraggable = exports.deltaFn = void 0;
|
|
9
11
|
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
+
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
|
|
18
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
19
|
+
|
|
20
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
21
|
+
|
|
22
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
23
|
+
|
|
24
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
25
|
+
|
|
26
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
27
|
+
|
|
28
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
29
|
+
|
|
30
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
31
|
+
|
|
10
32
|
var _react = _interopRequireDefault(require("react"));
|
|
11
33
|
|
|
12
34
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -31,48 +53,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
31
53
|
|
|
32
54
|
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; }
|
|
33
55
|
|
|
34
|
-
function
|
|
35
|
-
|
|
36
|
-
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); }
|
|
37
|
-
|
|
38
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
39
|
-
|
|
40
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
41
|
-
|
|
42
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
43
|
-
|
|
44
|
-
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."); }
|
|
45
|
-
|
|
46
|
-
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); }
|
|
47
|
-
|
|
48
|
-
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; }
|
|
49
|
-
|
|
50
|
-
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; }
|
|
51
|
-
|
|
52
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
53
|
-
|
|
54
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
55
|
-
|
|
56
|
-
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); } }
|
|
57
|
-
|
|
58
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
59
|
-
|
|
60
|
-
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); }
|
|
61
|
-
|
|
62
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
63
|
-
|
|
64
|
-
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); }; }
|
|
65
|
-
|
|
66
|
-
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); }
|
|
67
|
-
|
|
68
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
56
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
69
57
|
|
|
70
58
|
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; } }
|
|
71
59
|
|
|
72
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
73
|
-
|
|
74
|
-
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; }
|
|
75
|
-
|
|
76
60
|
var log = (0, _debug["default"])('pie-lib:plot:grid-draggable');
|
|
77
61
|
|
|
78
62
|
var deltaFn = function deltaFn(scale, snap, val) {
|
|
@@ -96,22 +80,21 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
96
80
|
|
|
97
81
|
(0, _invariant["default"])(!!opts && (0, _isFunction["default"])(opts.fromDelta) && (0, _isFunction["default"])(opts.bounds) && (0, _isFunction["default"])(opts.anchorPoint), 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }');
|
|
98
82
|
return _class = /*#__PURE__*/function (_React$Component) {
|
|
99
|
-
|
|
83
|
+
(0, _inherits2["default"])(GridDraggable, _React$Component);
|
|
100
84
|
|
|
101
85
|
var _super = _createSuper(GridDraggable);
|
|
102
86
|
|
|
103
87
|
function GridDraggable() {
|
|
104
88
|
var _this;
|
|
105
89
|
|
|
106
|
-
|
|
90
|
+
(0, _classCallCheck2["default"])(this, GridDraggable);
|
|
107
91
|
|
|
108
92
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
109
93
|
args[_key] = arguments[_key];
|
|
110
94
|
}
|
|
111
95
|
|
|
112
96
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
113
|
-
|
|
114
|
-
_defineProperty(_assertThisInitialized(_this), "grid", function () {
|
|
97
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "grid", function () {
|
|
115
98
|
var graphProps = _this.props.graphProps;
|
|
116
99
|
var scale = graphProps.scale,
|
|
117
100
|
domain = graphProps.domain,
|
|
@@ -121,8 +104,7 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
121
104
|
y: scale.y(range.step) - scale.y(0)
|
|
122
105
|
};
|
|
123
106
|
});
|
|
124
|
-
|
|
125
|
-
_defineProperty(_assertThisInitialized(_this), "onStart", function (e) {
|
|
107
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onStart", function (e) {
|
|
126
108
|
var onDragStart = _this.props.onDragStart;
|
|
127
109
|
|
|
128
110
|
if (document.activeElement) {
|
|
@@ -138,8 +120,7 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
138
120
|
onDragStart();
|
|
139
121
|
}
|
|
140
122
|
});
|
|
141
|
-
|
|
142
|
-
_defineProperty(_assertThisInitialized(_this), "position", function () {
|
|
123
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "position", function () {
|
|
143
124
|
var _opts$anchorPoint = opts.anchorPoint(_this.props),
|
|
144
125
|
x = _opts$anchorPoint.x,
|
|
145
126
|
y = _opts$anchorPoint.y;
|
|
@@ -156,8 +137,7 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
156
137
|
y: deltaFn(scale.y, snap.y, y)
|
|
157
138
|
};
|
|
158
139
|
});
|
|
159
|
-
|
|
160
|
-
_defineProperty(_assertThisInitialized(_this), "tiny", function (key, event) {
|
|
140
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "tiny", function (key, event) {
|
|
161
141
|
var K = key.toUpperCase();
|
|
162
142
|
var end = event["client".concat(K)];
|
|
163
143
|
|
|
@@ -168,8 +148,7 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
168
148
|
log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);
|
|
169
149
|
return out;
|
|
170
150
|
});
|
|
171
|
-
|
|
172
|
-
_defineProperty(_assertThisInitialized(_this), "getScaledBounds", function () {
|
|
151
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getScaledBounds", function () {
|
|
173
152
|
var bounds = opts.bounds(_this.props, _this.props.graphProps);
|
|
174
153
|
log('bounds: ', bounds);
|
|
175
154
|
|
|
@@ -184,13 +163,12 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
184
163
|
log('[getScaledBounds]: ', scaled);
|
|
185
164
|
return scaled;
|
|
186
165
|
});
|
|
187
|
-
|
|
188
|
-
_defineProperty(_assertThisInitialized(_this), "skipDragOutsideOfBounds", function (dd, e, graphProps) {
|
|
166
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "skipDragOutsideOfBounds", function (dd, e, graphProps) {
|
|
189
167
|
// ignore drag movement outside of the domain and range.
|
|
190
168
|
var rootNode = graphProps.getRootNode();
|
|
191
169
|
|
|
192
170
|
var _clientPoint = (0, _d3Selection.clientPoint)(rootNode, e),
|
|
193
|
-
_clientPoint2 =
|
|
171
|
+
_clientPoint2 = (0, _slicedToArray2["default"])(_clientPoint, 2),
|
|
194
172
|
rawX = _clientPoint2[0],
|
|
195
173
|
rawY = _clientPoint2[1];
|
|
196
174
|
|
|
@@ -203,8 +181,7 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
203
181
|
var yOutside = dd.deltaY > 0 && y > range.max || dd.deltaY < 0 && y < range.min;
|
|
204
182
|
return xOutside || yOutside;
|
|
205
183
|
});
|
|
206
|
-
|
|
207
|
-
_defineProperty(_assertThisInitialized(_this), "onDrag", function (e, dd) {
|
|
184
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDrag", function (e, dd) {
|
|
208
185
|
var _this$props = _this.props,
|
|
209
186
|
onDrag = _this$props.onDrag,
|
|
210
187
|
graphProps = _this$props.graphProps;
|
|
@@ -244,8 +221,7 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
244
221
|
onDrag(dragArg);
|
|
245
222
|
}
|
|
246
223
|
});
|
|
247
|
-
|
|
248
|
-
_defineProperty(_assertThisInitialized(_this), "getDelta", function (point) {
|
|
224
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getDelta", function (point) {
|
|
249
225
|
var pos = _this.position();
|
|
250
226
|
|
|
251
227
|
var p = {
|
|
@@ -254,15 +230,13 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
254
230
|
};
|
|
255
231
|
return utils.getDelta(pos.anchorPoint, p);
|
|
256
232
|
});
|
|
257
|
-
|
|
258
|
-
_defineProperty(_assertThisInitialized(_this), "applyDelta", function (point) {
|
|
233
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "applyDelta", function (point) {
|
|
259
234
|
var delta = _this.getDelta(point);
|
|
260
235
|
|
|
261
236
|
log('[applyDelta] delta:', delta);
|
|
262
237
|
return opts.fromDelta(_this.props, delta);
|
|
263
238
|
});
|
|
264
|
-
|
|
265
|
-
_defineProperty(_assertThisInitialized(_this), "onStop", function (e, dd) {
|
|
239
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onStop", function (e, dd) {
|
|
266
240
|
log('[onStop] dd:', dd);
|
|
267
241
|
var _this$props2 = _this.props,
|
|
268
242
|
onDragStop = _this$props2.onDragStop,
|
|
@@ -289,7 +263,7 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
289
263
|
snap = graphProps.snap;
|
|
290
264
|
|
|
291
265
|
var _clientPoint3 = (0, _d3Selection.clientPoint)(e.target, e),
|
|
292
|
-
_clientPoint4 =
|
|
266
|
+
_clientPoint4 = (0, _slicedToArray2["default"])(_clientPoint3, 2),
|
|
293
267
|
rawX = _clientPoint4[0],
|
|
294
268
|
rawY = _clientPoint4[1];
|
|
295
269
|
|
|
@@ -313,11 +287,10 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
313
287
|
|
|
314
288
|
return false;
|
|
315
289
|
});
|
|
316
|
-
|
|
317
290
|
return _this;
|
|
318
291
|
}
|
|
319
292
|
|
|
320
|
-
|
|
293
|
+
(0, _createClass2["default"])(GridDraggable, [{
|
|
321
294
|
key: "render",
|
|
322
295
|
value: function render() {
|
|
323
296
|
/* eslint-disable no-unused-vars */
|
|
@@ -325,10 +298,9 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
325
298
|
var _this$props3 = this.props,
|
|
326
299
|
disabled = _this$props3.disabled,
|
|
327
300
|
onClick = _this$props3.onClick,
|
|
328
|
-
rest =
|
|
301
|
+
rest = (0, _objectWithoutProperties2["default"])(_this$props3, _excluded);
|
|
329
302
|
/* eslint-enable no-unused-vars */
|
|
330
303
|
|
|
331
|
-
|
|
332
304
|
var grid = this.grid(); //prevent the text select icon from rendering.
|
|
333
305
|
|
|
334
306
|
var onMouseDown = function onMouseDown(e) {
|
|
@@ -349,15 +321,14 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
349
321
|
onStop: this.onStop,
|
|
350
322
|
axis: opts.axis || 'both',
|
|
351
323
|
grid: [grid.x, grid.y]
|
|
352
|
-
}, /*#__PURE__*/_react["default"].createElement(Comp,
|
|
324
|
+
}, /*#__PURE__*/_react["default"].createElement(Comp, (0, _extends2["default"])({}, rest, {
|
|
353
325
|
disabled: disabled,
|
|
354
326
|
isDragging: isDragging
|
|
355
327
|
})));
|
|
356
328
|
}
|
|
357
329
|
}]);
|
|
358
|
-
|
|
359
330
|
return GridDraggable;
|
|
360
|
-
}(_react["default"].Component),
|
|
331
|
+
}(_react["default"].Component), (0, _defineProperty2["default"])(_class, "propTypes", {
|
|
361
332
|
disabled: _propTypes["default"].bool,
|
|
362
333
|
onDragStart: _propTypes["default"].func,
|
|
363
334
|
onDrag: _propTypes["default"].func,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/grid-draggable.jsx"],"names":["log","deltaFn","scale","snap","val","delta","normalized","inverted","invert","gridDraggable","opts","Comp","fromDelta","bounds","anchorPoint","graphProps","props","domain","range","x","step","y","e","onDragStart","document","activeElement","blur","setState","startX","clientX","startY","clientY","key","event","K","toUpperCase","end","start","state","Math","abs","out","grid","scaled","left","interval","right","top","bottom","dd","rootNode","getRootNode","rawX","rawY","xOutside","deltaX","min","max","yOutside","deltaY","onDrag","getScaledBounds","skipDragOutsideOfBounds","dragArg","applyDelta","undefined","point","pos","position","p","utils","getDelta","onDragStop","onClick","lastX","lastY","isClick","tiny","target","disabled","rest","onMouseDown","nativeEvent","preventDefault","isDragging","onStart","onStop","axis","React","Component","PropTypes","bool","func","onMove","GraphPropsType","isRequired"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAMA,GAAG,GAAG,uBAAM,6BAAN,CAAZ;;AACO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD,EAAQC,IAAR,EAAcC,GAAd;AAAA,SAAsB,UAAAC,KAAK,EAAI;AACpD,QAAMC,UAAU,GAAGD,KAAK,GAAGH,KAAK,CAAC,CAAD,CAAhC;AACA,QAAMK,QAAQ,GAAGL,KAAK,CAACM,MAAN,CAAaF,UAAb,CAAjB;AACA,WAAOH,IAAI,CAACC,GAAG,GAAGG,QAAP,CAAX;AACD,GAJsB;AAAA,CAAhB;AAKP;AACA;AACA;AACA;;;;;AACO,IAAME,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,IAAI;AAAA,SAAI,UAAAC,IAAI,EAAI;AAAA;;AAC3C,+BACE,CAAC,CAACD,IAAF,IAAU,4BAAWA,IAAI,CAACE,SAAhB,CAAV,IAAwC,4BAAWF,IAAI,CAACG,MAAhB,CAAxC,IAAmE,4BAAWH,IAAI,CAACI,WAAhB,CADrE,EAEE,kGAFF;AAIA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA,+DAUS,YAAM;AACX,cAAQC,UAAR,GAAuB,MAAKC,KAA5B,CAAQD,UAAR;AACA,cAAQb,KAAR,GAAiCa,UAAjC,CAAQb,KAAR;AAAA,cAAee,MAAf,GAAiCF,UAAjC,CAAeE,MAAf;AAAA,cAAuBC,KAAvB,GAAiCH,UAAjC,CAAuBG,KAAvB;AACA,iBAAO;AACLC,YAAAA,CAAC,EAAEjB,KAAK,CAACiB,CAAN,CAAQF,MAAM,CAACG,IAAf,IAAuBlB,KAAK,CAACiB,CAAN,CAAQ,CAAR,CADrB;AAELE,YAAAA,CAAC,EAAEnB,KAAK,CAACmB,CAAN,CAAQH,KAAK,CAACE,IAAd,IAAsBlB,KAAK,CAACmB,CAAN,CAAQ,CAAR;AAFpB,WAAP;AAID,SAjBH;;AAAA,kEAkBY,UAAAC,CAAC,EAAI;AACb,cAAQC,WAAR,GAAwB,MAAKP,KAA7B,CAAQO,WAAR;;AACA,cAAIC,QAAQ,CAACC,aAAb,EAA4B;AAC1BD,YAAAA,QAAQ,CAACC,aAAT,CAAuBC,IAAvB;AACD;;AACD,gBAAKC,QAAL,CAAc;AAAEC,YAAAA,MAAM,EAAEN,CAAC,CAACO,OAAZ;AAAqBC,YAAAA,MAAM,EAAER,CAAC,CAACS;AAA/B,WAAd;;AACA,cAAIR,WAAJ,EAAiB;AACfA,YAAAA,WAAW;AACZ;AACF,SA3BH;;AAAA,mEA4Ba,YAAM;AACf,kCAAiBb,IAAI,CAACI,WAAL,CAAiB,MAAKE,KAAtB,CAAjB;AAAA,cAAQG,CAAR,qBAAQA,CAAR;AAAA,cAAWE,CAAX,qBAAWA,CAAX;;AACA,cAAQN,UAAR,GAAuB,MAAKC,KAA5B,CAAQD,UAAR;AACA,cAAQb,KAAR,GAAwBa,UAAxB,CAAQb,KAAR;AAAA,cAAeC,IAAf,GAAwBY,UAAxB,CAAeZ,IAAf;AACA,iBAAO;AACLW,YAAAA,WAAW,EAAE;AACXK,cAAAA,CAAC,EAADA,CADW;AAEXE,cAAAA,CAAC,EAADA;AAFW,aADR;AAKLF,YAAAA,CAAC,EAAElB,OAAO,CAACC,KAAK,CAACiB,CAAP,EAAUhB,IAAI,CAACgB,CAAf,EAAkBA,CAAlB,CALL;AAMLE,YAAAA,CAAC,EAAEpB,OAAO,CAACC,KAAK,CAACmB,CAAP,EAAUlB,IAAI,CAACkB,CAAf,EAAkBA,CAAlB;AANL,WAAP;AAQD,SAxCH;;AAAA,+DA0CS,UAACW,GAAD,EAAMC,KAAN,EAAgB;AACrB,cAAMC,CAAC,GAAGF,GAAG,CAACG,WAAJ,EAAV;AACA,cAAMC,GAAG,GAAGH,KAAK,iBAAUC,CAAV,EAAjB;;AACA,cAAMG,KAAK,GAAG,MAAKC,KAAL,gBAAmBJ,CAAnB,EAAd;;AACA,cAAM7B,KAAK,GAAGkC,IAAI,CAACC,GAAL,CAASJ,GAAG,GAAGC,KAAf,CAAd;AACA,cAAMI,GAAG,GAAGpC,KAAK,GAAGkC,IAAI,CAACC,GAAL,CAAS,MAAKE,IAAL,GAAYV,GAAZ,CAAT,IAA6B,EAAjD;AACAhC,UAAAA,GAAG,CAAC,cAAD,EAAiBgC,GAAjB,EAAsB,SAAtB,EAAiC3B,KAAjC,EAAwC,OAAxC,EAAiDoC,GAAjD,CAAH;AACA,iBAAOA,GAAP;AACD,SAlDH;;AAAA,0EAoDoB,YAAM;AACtB,cAAM5B,MAAM,GAAGH,IAAI,CAACG,MAAL,CAAY,MAAKG,KAAjB,EAAwB,MAAKA,KAAL,CAAWD,UAAnC,CAAf;AACAf,UAAAA,GAAG,CAAC,UAAD,EAAaa,MAAb,CAAH;;AACA,cAAM6B,IAAI,GAAG,MAAKA,IAAL,EAAb;;AAEA,cAAMC,MAAM,GAAG;AACbC,YAAAA,IAAI,EAAG/B,MAAM,CAAC+B,IAAP,GAAcF,IAAI,CAACG,QAApB,GAAgCH,IAAI,CAACvB,CAD9B;AAEb2B,YAAAA,KAAK,EAAGjC,MAAM,CAACiC,KAAP,GAAeJ,IAAI,CAACG,QAArB,GAAiCH,IAAI,CAACvB,CAFhC;AAGb4B,YAAAA,GAAG,EAAGlC,MAAM,CAACkC,GAAP,GAAaL,IAAI,CAACG,QAAnB,GAA+BH,IAAI,CAACrB,CAH5B;AAIb2B,YAAAA,MAAM,EAAGnC,MAAM,CAACmC,MAAP,GAAgBN,IAAI,CAACG,QAAtB,GAAkCH,IAAI,CAACrB;AAJlC,WAAf;AAMArB,UAAAA,GAAG,CAAC,qBAAD,EAAwB2C,MAAxB,CAAH;AACA,iBAAOA,MAAP;AACD,SAjEH;;AAAA,kFAmE4B,UAACM,EAAD,EAAK3B,CAAL,EAAQP,UAAR,EAAuB;AAC/C;AACA,cAAMmC,QAAQ,GAAGnC,UAAU,CAACoC,WAAX,EAAjB;;AACA,6BAAqB,8BAAYD,QAAZ,EAAsB5B,CAAtB,CAArB;AAAA;AAAA,cAAO8B,IAAP;AAAA,cAAaC,IAAb;;AACA,cAAQnD,KAAR,GAAiCa,UAAjC,CAAQb,KAAR;AAAA,cAAee,MAAf,GAAiCF,UAAjC,CAAeE,MAAf;AAAA,cAAuBC,KAAvB,GAAiCH,UAAjC,CAAuBG,KAAvB;AACA,cAAIC,CAAC,GAAGjB,KAAK,CAACiB,CAAN,CAAQX,MAAR,CAAe4C,IAAf,CAAR;AACA,cAAI/B,CAAC,GAAGnB,KAAK,CAACmB,CAAN,CAAQb,MAAR,CAAe6C,IAAf,CAAR;AAEA,cAAMC,QAAQ,GAAIL,EAAE,CAACM,MAAH,GAAY,CAAZ,IAAiBpC,CAAC,GAAGF,MAAM,CAACuC,GAA7B,IAAsCP,EAAE,CAACM,MAAH,GAAY,CAAZ,IAAiBpC,CAAC,GAAGF,MAAM,CAACwC,GAAnF;AACA,cAAMC,QAAQ,GAAIT,EAAE,CAACU,MAAH,GAAY,CAAZ,IAAiBtC,CAAC,GAAGH,KAAK,CAACuC,GAA5B,IAAqCR,EAAE,CAACU,MAAH,GAAY,CAAZ,IAAiBtC,CAAC,GAAGH,KAAK,CAACsC,GAAjF;AACA,iBAAOF,QAAQ,IAAII,QAAnB;AACD,SA9EH;;AAAA,iEAgFW,UAACpC,CAAD,EAAI2B,EAAJ,EAAW;AAClB,4BAA+B,MAAKjC,KAApC;AAAA,cAAQ4C,MAAR,eAAQA,MAAR;AAAA,cAAgB7C,UAAhB,eAAgBA,UAAhB;;AAEA,cAAI,CAAC6C,MAAL,EAAa;AACX;AACD;;AAED,cAAM/C,MAAM,GAAG,MAAKgD,eAAL,EAAf;;AAEA,cAAIZ,EAAE,CAACM,MAAH,GAAY,CAAZ,IAAiBN,EAAE,CAACM,MAAH,GAAY1C,MAAM,CAAC+B,IAAxC,EAA8C;AAC5C;AACD;;AAED,cAAIK,EAAE,CAACM,MAAH,GAAY,CAAZ,IAAiBN,EAAE,CAACM,MAAH,GAAY1C,MAAM,CAACiC,KAAxC,EAA+C;AAC7C;AACD;;AAED,cAAIG,EAAE,CAACU,MAAH,GAAY,CAAZ,IAAiBV,EAAE,CAACU,MAAH,GAAY9C,MAAM,CAACkC,GAAxC,EAA6C;AAC3C;AACD;;AAED,cAAIE,EAAE,CAACU,MAAH,GAAY,CAAZ,IAAiBV,EAAE,CAACU,MAAH,GAAY9C,MAAM,CAACmC,MAAxC,EAAgD;AAC9C;AACD;;AAED,cAAI,MAAKc,uBAAL,CAA6Bb,EAA7B,EAAiC3B,CAAjC,EAAoCP,UAApC,CAAJ,EAAqD;AACnD;AACD;;AAED,cAAMgD,OAAO,GAAG,MAAKC,UAAL,CAAgB;AAAE7C,YAAAA,CAAC,EAAE8B,EAAE,CAACM,MAAR;AAAgBlC,YAAAA,CAAC,EAAE4B,EAAE,CAACU;AAAtB,WAAhB,CAAhB;;AAEA,cAAII,OAAO,KAAKE,SAAZ,IAAyBF,OAAO,KAAK,IAAzC,EAA+C;AAC7CH,YAAAA,MAAM,CAACG,OAAD,CAAN;AACD;AACF,SAlHH;;AAAA,mEAoHa,UAAAG,KAAK,EAAI;AAClB,cAAMC,GAAG,GAAG,MAAKC,QAAL,EAAZ;;AAEA,cAAMC,CAAC,GAAG;AACRlD,YAAAA,CAAC,EAAEgD,GAAG,CAAChD,CAAJ,CAAM+C,KAAK,CAAC/C,CAAZ,CADK;AAERE,YAAAA,CAAC,EAAE8C,GAAG,CAAC9C,CAAJ,CAAM6C,KAAK,CAAC7C,CAAZ;AAFK,WAAV;AAKA,iBAAOiD,KAAK,CAACC,QAAN,CAAeJ,GAAG,CAACrD,WAAnB,EAAgCuD,CAAhC,CAAP;AACD,SA7HH;;AAAA,qEA+He,UAAAH,KAAK,EAAI;AACpB,cAAM7D,KAAK,GAAG,MAAKkE,QAAL,CAAcL,KAAd,CAAd;;AACAlE,UAAAA,GAAG,CAAC,qBAAD,EAAwBK,KAAxB,CAAH;AACA,iBAAOK,IAAI,CAACE,SAAL,CAAe,MAAKI,KAApB,EAA2BX,KAA3B,CAAP;AACD,SAnIH;;AAAA,iEAqIW,UAACiB,CAAD,EAAI2B,EAAJ,EAAW;AAClBjD,UAAAA,GAAG,CAAC,cAAD,EAAiBiD,EAAjB,CAAH;AACA,6BAAgC,MAAKjC,KAArC;AAAA,cAAQwD,UAAR,gBAAQA,UAAR;AAAA,cAAoBC,OAApB,gBAAoBA,OAApB;;AAEA,cAAID,UAAJ,EAAgB;AACdA,YAAAA,UAAU;AACX;;AAEDxE,UAAAA,GAAG,CAAC,oBAAD,EAAuBiD,EAAE,CAACyB,KAA1B,EAAiCzB,EAAE,CAAC0B,KAApC,CAAH;;AACA,cAAMC,OAAO,GAAG,MAAKC,IAAL,CAAU,GAAV,EAAevD,CAAf,KAAqB,MAAKuD,IAAL,CAAU,GAAV,EAAevD,CAAf,CAArC;;AAEA,cAAIsD,OAAJ,EAAa;AACX,gBAAIH,OAAJ,EAAa;AACXzE,cAAAA,GAAG,CAAC,cAAD,CAAH;;AACA,oBAAK2B,QAAL,CAAc;AAAEC,gBAAAA,MAAM,EAAE;AAAV,eAAd;;AACA,kBAAQb,UAAR,GAAuB,MAAKC,KAA5B,CAAQD,UAAR;AACA,kBAAQb,KAAR,GAAwBa,UAAxB,CAAQb,KAAR;AAAA,kBAAeC,IAAf,GAAwBY,UAAxB,CAAeZ,IAAf;;AACA,kCAAqB,8BAAYmB,CAAC,CAACwD,MAAd,EAAsBxD,CAAtB,CAArB;AAAA;AAAA,kBAAO8B,IAAP;AAAA,kBAAaC,IAAb;;AACA,kBAAIlC,CAAC,GAAGjB,KAAK,CAACiB,CAAN,CAAQX,MAAR,CAAe4C,IAAf,CAAR;AACA,kBAAI/B,CAAC,GAAGnB,KAAK,CAACmB,CAAN,CAAQb,MAAR,CAAe6C,IAAf,CAAR;AACAlC,cAAAA,CAAC,GAAGhB,IAAI,CAACgB,CAAL,CAAOA,CAAP,CAAJ;AACAE,cAAAA,CAAC,GAAGlB,IAAI,CAACkB,CAAL,CAAOA,CAAP,CAAJ;AACAoD,cAAAA,OAAO,CAAC;AAAEtD,gBAAAA,CAAC,EAADA,CAAF;AAAKE,gBAAAA,CAAC,EAADA;AAAL,eAAD,CAAP;AACA,qBAAO,KAAP;AACD;AACF;;AAED,gBAAKM,QAAL,CAAc;AAAEC,YAAAA,MAAM,EAAE,IAAV;AAAgBE,YAAAA,MAAM,EAAE;AAAxB,WAAd,EA3BkB,CA4BlB;;;AACA,iBAAO,KAAP;AACD,SAnKH;;AAAA;AAAA;;AAAA;AAAA;AAAA,eAqKE,kBAAS;AACP;AACA;AACA,6BAAuC,KAAKd,KAA5C;AAAA,cAAQ+D,QAAR,gBAAQA,QAAR;AAAA,cAAkBN,OAAlB,gBAAkBA,OAAlB;AAAA,cAA8BO,IAA9B;AACA;;;AAEA,cAAMtC,IAAI,GAAG,KAAKA,IAAL,EAAb,CANO,CAOP;;AACA,cAAMuC,WAAW,GAAG,SAAdA,WAAc,CAAA3D,CAAC;AAAA,mBAAIA,CAAC,CAAC4D,WAAF,CAAcC,cAAd,EAAJ;AAAA,WAArB;AAEA;AACN;AACA;AACA;;;AACM,cAAMC,UAAU,GAAG,KAAK9C,KAAL,GAAa,CAAC,CAAC,KAAKA,KAAL,CAAWV,MAA1B,GAAmC,KAAtD;AAEA,8BACE,gCAAC,wBAAD;AACE,YAAA,QAAQ,EAAEmD,QADZ;AAEE,YAAA,WAAW,EAAEE,WAFf;AAGE,YAAA,OAAO,EAAE,KAAKI,OAHhB;AAIE,YAAA,MAAM,EAAE,KAAKzB,MAJf;AAKE,YAAA,MAAM,EAAE,KAAK0B,MALf;AAME,YAAA,IAAI,EAAE5E,IAAI,CAAC6E,IAAL,IAAa,MANrB;AAOE,YAAA,IAAI,EAAE,CAAC7C,IAAI,CAACvB,CAAN,EAASuB,IAAI,CAACrB,CAAd;AAPR,0BASE,gCAAC,IAAD,eAAU2D,IAAV;AAAgB,YAAA,QAAQ,EAAED,QAA1B;AAAoC,YAAA,UAAU,EAAEK;AAAhD,aATF,CADF;AAaD;AAlMH;;AAAA;AAAA,MAAmCI,kBAAMC,SAAzC,wCACqB;AACjBV,MAAAA,QAAQ,EAAEW,sBAAUC,IADH;AAEjBpE,MAAAA,WAAW,EAAEmE,sBAAUE,IAFN;AAGjBhC,MAAAA,MAAM,EAAE8B,sBAAUE,IAHD;AAIjBpB,MAAAA,UAAU,EAAEkB,sBAAUE,IAJL;AAKjBnB,MAAAA,OAAO,EAAEiB,sBAAUE,IALF;AAMjBC,MAAAA,MAAM,EAAEH,sBAAUE,IAND;AAOjB7E,MAAAA,UAAU,EAAE+E,sBAAeC;AAPV,KADrB;AAoMD,GAzMgC;AAAA,CAA1B","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { DraggableCore } from './draggable';\nimport debug from 'debug';\nimport * as utils from './utils';\nimport isFunction from 'lodash/isFunction';\nimport invariant from 'invariant';\nimport { clientPoint } from 'd3-selection';\nconst log = debug('pie-lib:plot:grid-draggable');\nexport const deltaFn = (scale, snap, val) => delta => {\n const normalized = delta + scale(0);\n const inverted = scale.invert(normalized);\n return snap(val + inverted);\n};\n/**\n * Creates a Component that is draggable, within a bounded grid.\n * @param {*} opts\n */\nexport const gridDraggable = opts => Comp => {\n invariant(\n !!opts && isFunction(opts.fromDelta) && isFunction(opts.bounds) && isFunction(opts.anchorPoint),\n 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }'\n );\n return class GridDraggable extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n onMove: PropTypes.func,\n graphProps: GraphPropsType.isRequired\n };\n grid = () => {\n const { graphProps } = this.props;\n const { scale, domain, range } = graphProps;\n return {\n x: scale.x(domain.step) - scale.x(0),\n y: scale.y(range.step) - scale.y(0)\n };\n };\n onStart = e => {\n const { onDragStart } = this.props;\n if (document.activeElement) {\n document.activeElement.blur();\n }\n this.setState({ startX: e.clientX, startY: e.clientY });\n if (onDragStart) {\n onDragStart();\n }\n };\n position = () => {\n const { x, y } = opts.anchorPoint(this.props);\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n return {\n anchorPoint: {\n x,\n y\n },\n x: deltaFn(scale.x, snap.x, x),\n y: deltaFn(scale.y, snap.y, y)\n };\n };\n\n tiny = (key, event) => {\n const K = key.toUpperCase();\n const end = event[`client${K}`];\n const start = this.state[`start${K}`];\n const delta = Math.abs(end - start);\n const out = delta < Math.abs(this.grid()[key]) / 10;\n log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);\n return out;\n };\n\n getScaledBounds = () => {\n const bounds = opts.bounds(this.props, this.props.graphProps);\n log('bounds: ', bounds);\n const grid = this.grid();\n\n const scaled = {\n left: (bounds.left / grid.interval) * grid.x,\n right: (bounds.right / grid.interval) * grid.x,\n top: (bounds.top / grid.interval) * grid.y,\n bottom: (bounds.bottom / grid.interval) * grid.y\n };\n log('[getScaledBounds]: ', scaled);\n return scaled;\n };\n\n skipDragOutsideOfBounds = (dd, e, graphProps) => {\n // ignore drag movement outside of the domain and range.\n const rootNode = graphProps.getRootNode();\n const [rawX, rawY] = clientPoint(rootNode, e);\n const { scale, domain, range } = graphProps;\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n\n const xOutside = (dd.deltaX > 0 && x < domain.min) || (dd.deltaX < 0 && x > domain.max);\n const yOutside = (dd.deltaY > 0 && y > range.max) || (dd.deltaY < 0 && y < range.min);\n return xOutside || yOutside;\n };\n\n onDrag = (e, dd) => {\n const { onDrag, graphProps } = this.props;\n\n if (!onDrag) {\n return;\n }\n\n const bounds = this.getScaledBounds();\n\n if (dd.deltaX < 0 && dd.deltaX < bounds.left) {\n return;\n }\n\n if (dd.deltaX > 0 && dd.deltaX > bounds.right) {\n return;\n }\n\n if (dd.deltaY < 0 && dd.deltaY < bounds.top) {\n return;\n }\n\n if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {\n return;\n }\n\n if (this.skipDragOutsideOfBounds(dd, e, graphProps)) {\n return;\n }\n\n const dragArg = this.applyDelta({ x: dd.deltaX, y: dd.deltaY });\n\n if (dragArg !== undefined || dragArg !== null) {\n onDrag(dragArg);\n }\n };\n\n getDelta = point => {\n const pos = this.position();\n\n const p = {\n x: pos.x(point.x),\n y: pos.y(point.y)\n };\n\n return utils.getDelta(pos.anchorPoint, p);\n };\n\n applyDelta = point => {\n const delta = this.getDelta(point);\n log('[applyDelta] delta:', delta);\n return opts.fromDelta(this.props, delta);\n };\n\n onStop = (e, dd) => {\n log('[onStop] dd:', dd);\n const { onDragStop, onClick } = this.props;\n\n if (onDragStop) {\n onDragStop();\n }\n\n log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);\n const isClick = this.tiny('x', e) && this.tiny('y', e);\n\n if (isClick) {\n if (onClick) {\n log('call onClick');\n this.setState({ startX: null });\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n const [rawX, rawY] = clientPoint(e.target, e);\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n x = snap.x(x);\n y = snap.y(y);\n onClick({ x, y });\n return false;\n }\n }\n\n this.setState({ startX: null, startY: null });\n // return false to prevent state updates in the underlying draggable - a move will have triggered an update already.\n return false;\n };\n\n render() {\n /* eslint-disable no-unused-vars */\n //Note: we pull onClick out so that it's not in ...rest.\n const { disabled, onClick, ...rest } = this.props;\n /* eslint-enable no-unused-vars */\n\n const grid = this.grid();\n //prevent the text select icon from rendering.\n const onMouseDown = e => e.nativeEvent.preventDefault();\n\n /**\n * TODO: This shouldnt be necessary, we should be able to use the r-d classnames.\n * But they aren't being unset. If we continue with this lib, we'll have to fix this.\n */\n const isDragging = this.state ? !!this.state.startX : false;\n\n return (\n <DraggableCore\n disabled={disabled}\n onMouseDown={onMouseDown}\n onStart={this.onStart}\n onDrag={this.onDrag}\n onStop={this.onStop}\n axis={opts.axis || 'both'}\n grid={[grid.x, grid.y]}\n >\n <Comp {...rest} disabled={disabled} isDragging={isDragging} />\n </DraggableCore>\n );\n }\n };\n};\n"],"file":"grid-draggable.js"}
|
|
1
|
+
{"version":3,"sources":["../src/grid-draggable.jsx"],"names":["log","deltaFn","scale","snap","val","delta","normalized","inverted","invert","gridDraggable","opts","Comp","fromDelta","bounds","anchorPoint","graphProps","props","domain","range","x","step","y","e","onDragStart","document","activeElement","blur","setState","startX","clientX","startY","clientY","key","event","K","toUpperCase","end","start","state","Math","abs","out","grid","scaled","left","interval","right","top","bottom","dd","rootNode","getRootNode","rawX","rawY","xOutside","deltaX","min","max","yOutside","deltaY","onDrag","getScaledBounds","skipDragOutsideOfBounds","dragArg","applyDelta","undefined","point","pos","position","p","utils","getDelta","onDragStop","onClick","lastX","lastY","isClick","tiny","target","disabled","rest","onMouseDown","nativeEvent","preventDefault","isDragging","onStart","onStop","axis","React","Component","PropTypes","bool","func","onMove","GraphPropsType","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { DraggableCore } from './draggable';\nimport debug from 'debug';\nimport * as utils from './utils';\nimport isFunction from 'lodash/isFunction';\nimport invariant from 'invariant';\nimport { clientPoint } from 'd3-selection';\nconst log = debug('pie-lib:plot:grid-draggable');\nexport const deltaFn = (scale, snap, val) => delta => {\n const normalized = delta + scale(0);\n const inverted = scale.invert(normalized);\n return snap(val + inverted);\n};\n/**\n * Creates a Component that is draggable, within a bounded grid.\n * @param {*} opts\n */\nexport const gridDraggable = opts => Comp => {\n invariant(\n !!opts && isFunction(opts.fromDelta) && isFunction(opts.bounds) && isFunction(opts.anchorPoint),\n 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }'\n );\n return class GridDraggable extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n onMove: PropTypes.func,\n graphProps: GraphPropsType.isRequired\n };\n grid = () => {\n const { graphProps } = this.props;\n const { scale, domain, range } = graphProps;\n return {\n x: scale.x(domain.step) - scale.x(0),\n y: scale.y(range.step) - scale.y(0)\n };\n };\n onStart = e => {\n const { onDragStart } = this.props;\n if (document.activeElement) {\n document.activeElement.blur();\n }\n this.setState({ startX: e.clientX, startY: e.clientY });\n if (onDragStart) {\n onDragStart();\n }\n };\n position = () => {\n const { x, y } = opts.anchorPoint(this.props);\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n return {\n anchorPoint: {\n x,\n y\n },\n x: deltaFn(scale.x, snap.x, x),\n y: deltaFn(scale.y, snap.y, y)\n };\n };\n\n tiny = (key, event) => {\n const K = key.toUpperCase();\n const end = event[`client${K}`];\n const start = this.state[`start${K}`];\n const delta = Math.abs(end - start);\n const out = delta < Math.abs(this.grid()[key]) / 10;\n log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);\n return out;\n };\n\n getScaledBounds = () => {\n const bounds = opts.bounds(this.props, this.props.graphProps);\n log('bounds: ', bounds);\n const grid = this.grid();\n\n const scaled = {\n left: (bounds.left / grid.interval) * grid.x,\n right: (bounds.right / grid.interval) * grid.x,\n top: (bounds.top / grid.interval) * grid.y,\n bottom: (bounds.bottom / grid.interval) * grid.y\n };\n log('[getScaledBounds]: ', scaled);\n return scaled;\n };\n\n skipDragOutsideOfBounds = (dd, e, graphProps) => {\n // ignore drag movement outside of the domain and range.\n const rootNode = graphProps.getRootNode();\n const [rawX, rawY] = clientPoint(rootNode, e);\n const { scale, domain, range } = graphProps;\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n\n const xOutside = (dd.deltaX > 0 && x < domain.min) || (dd.deltaX < 0 && x > domain.max);\n const yOutside = (dd.deltaY > 0 && y > range.max) || (dd.deltaY < 0 && y < range.min);\n return xOutside || yOutside;\n };\n\n onDrag = (e, dd) => {\n const { onDrag, graphProps } = this.props;\n\n if (!onDrag) {\n return;\n }\n\n const bounds = this.getScaledBounds();\n\n if (dd.deltaX < 0 && dd.deltaX < bounds.left) {\n return;\n }\n\n if (dd.deltaX > 0 && dd.deltaX > bounds.right) {\n return;\n }\n\n if (dd.deltaY < 0 && dd.deltaY < bounds.top) {\n return;\n }\n\n if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {\n return;\n }\n\n if (this.skipDragOutsideOfBounds(dd, e, graphProps)) {\n return;\n }\n\n const dragArg = this.applyDelta({ x: dd.deltaX, y: dd.deltaY });\n\n if (dragArg !== undefined || dragArg !== null) {\n onDrag(dragArg);\n }\n };\n\n getDelta = point => {\n const pos = this.position();\n\n const p = {\n x: pos.x(point.x),\n y: pos.y(point.y)\n };\n\n return utils.getDelta(pos.anchorPoint, p);\n };\n\n applyDelta = point => {\n const delta = this.getDelta(point);\n log('[applyDelta] delta:', delta);\n return opts.fromDelta(this.props, delta);\n };\n\n onStop = (e, dd) => {\n log('[onStop] dd:', dd);\n const { onDragStop, onClick } = this.props;\n\n if (onDragStop) {\n onDragStop();\n }\n\n log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);\n const isClick = this.tiny('x', e) && this.tiny('y', e);\n\n if (isClick) {\n if (onClick) {\n log('call onClick');\n this.setState({ startX: null });\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n const [rawX, rawY] = clientPoint(e.target, e);\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n x = snap.x(x);\n y = snap.y(y);\n onClick({ x, y });\n return false;\n }\n }\n\n this.setState({ startX: null, startY: null });\n // return false to prevent state updates in the underlying draggable - a move will have triggered an update already.\n return false;\n };\n\n render() {\n /* eslint-disable no-unused-vars */\n //Note: we pull onClick out so that it's not in ...rest.\n const { disabled, onClick, ...rest } = this.props;\n /* eslint-enable no-unused-vars */\n\n const grid = this.grid();\n //prevent the text select icon from rendering.\n const onMouseDown = e => e.nativeEvent.preventDefault();\n\n /**\n * TODO: This shouldnt be necessary, we should be able to use the r-d classnames.\n * But they aren't being unset. If we continue with this lib, we'll have to fix this.\n */\n const isDragging = this.state ? !!this.state.startX : false;\n\n return (\n <DraggableCore\n disabled={disabled}\n onMouseDown={onMouseDown}\n onStart={this.onStart}\n onDrag={this.onDrag}\n onStop={this.onStop}\n axis={opts.axis || 'both'}\n grid={[grid.x, grid.y]}\n >\n <Comp {...rest} disabled={disabled} isDragging={isDragging} />\n </DraggableCore>\n );\n }\n };\n};\n"],"file":"grid-draggable.js"}
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
@@ -54,6 +56,4 @@ var _graphProps = require("./graph-props");
|
|
|
54
56
|
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); }
|
|
55
57
|
|
|
56
58
|
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; }
|
|
57
|
-
|
|
58
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
59
59
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AACA;;;;AACA;;;;AACA","sourcesContent":["import Root from './root';\nimport Draggable from './draggable';\nimport { gridDraggable } from './grid-draggable';\nimport * as utils from './utils';\nimport * as trig from './trig';\nimport * as types from './types';\nimport { create as createGraphProps } from './graph-props';\n\nexport { Root, Draggable, gridDraggable, utils, trig, types, createGraphProps };\n"],"file":"index.js"}
|
package/lib/root.js
CHANGED
|
@@ -1,90 +1,62 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = exports.Root =
|
|
8
|
+
exports["default"] = exports.Root = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
var _react = _interopRequireDefault(require("react"));
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
var _types = require("./types");
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
var _styles = require("@material-ui/core/styles");
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
var _d3Selection = require("d3-selection");
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
39
39
|
|
|
40
|
-
function
|
|
40
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
41
41
|
|
|
42
42
|
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; } }
|
|
43
43
|
|
|
44
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
45
|
-
|
|
46
|
-
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; }
|
|
47
|
-
|
|
48
|
-
var GraphTitle = (0, _styles.withStyles)(function (theme) {
|
|
49
|
-
return {
|
|
50
|
-
title: {
|
|
51
|
-
color: _renderUi.color.text(),
|
|
52
|
-
textAlign: 'center',
|
|
53
|
-
paddingTop: theme.spacing.unit * 2,
|
|
54
|
-
fontSize: theme.typography.fontSize + 6
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
})(function (_ref) {
|
|
58
|
-
var value = _ref.value,
|
|
59
|
-
classes = _ref.classes;
|
|
60
|
-
return /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
61
|
-
className: classes.title,
|
|
62
|
-
color: "primary",
|
|
63
|
-
variant: "h5",
|
|
64
|
-
dangerouslySetInnerHTML: {
|
|
65
|
-
__html: value
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
exports.GraphTitle = GraphTitle;
|
|
70
|
-
|
|
71
44
|
var Root = /*#__PURE__*/function (_React$Component) {
|
|
72
|
-
|
|
45
|
+
(0, _inherits2["default"])(Root, _React$Component);
|
|
73
46
|
|
|
74
47
|
var _super = _createSuper(Root);
|
|
75
48
|
|
|
76
49
|
function Root() {
|
|
77
50
|
var _this;
|
|
78
51
|
|
|
79
|
-
|
|
52
|
+
(0, _classCallCheck2["default"])(this, Root);
|
|
80
53
|
|
|
81
54
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
82
55
|
args[_key] = arguments[_key];
|
|
83
56
|
}
|
|
84
57
|
|
|
85
58
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
86
|
-
|
|
87
|
-
_defineProperty(_assertThisInitialized(_this), "mouseMove", function (g) {
|
|
59
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mouseMove", function (g) {
|
|
88
60
|
var _this$props = _this.props,
|
|
89
61
|
graphProps = _this$props.graphProps,
|
|
90
62
|
onMouseMove = _this$props.onMouseMove;
|
|
@@ -104,11 +76,10 @@ var Root = /*#__PURE__*/function (_React$Component) {
|
|
|
104
76
|
};
|
|
105
77
|
onMouseMove(snapped);
|
|
106
78
|
});
|
|
107
|
-
|
|
108
79
|
return _this;
|
|
109
80
|
}
|
|
110
81
|
|
|
111
|
-
|
|
82
|
+
(0, _createClass2["default"])(Root, [{
|
|
112
83
|
key: "componentDidMount",
|
|
113
84
|
value: function componentDidMount() {
|
|
114
85
|
var g = (0, _d3Selection.select)(this.g);
|
|
@@ -126,9 +97,12 @@ var Root = /*#__PURE__*/function (_React$Component) {
|
|
|
126
97
|
var _this2 = this;
|
|
127
98
|
|
|
128
99
|
var _this$props2 = this.props,
|
|
100
|
+
disabledTitle = _this$props2.disabledTitle,
|
|
129
101
|
graphProps = _this$props2.graphProps,
|
|
130
102
|
children = _this$props2.children,
|
|
131
103
|
classes = _this$props2.classes,
|
|
104
|
+
onChangeTitle = _this$props2.onChangeTitle,
|
|
105
|
+
showTitle = _this$props2.showTitle,
|
|
132
106
|
title = _this$props2.title,
|
|
133
107
|
rootRef = _this$props2.rootRef;
|
|
134
108
|
var _graphProps$size = graphProps.size,
|
|
@@ -143,10 +117,20 @@ var Root = /*#__PURE__*/function (_React$Component) {
|
|
|
143
117
|
|
|
144
118
|
var finalWidth = width + leftPadding * 2 + (domain.padding || 0) * 2;
|
|
145
119
|
var finalHeight = height + topPadding * 2 + (range.padding || 0) * 2;
|
|
120
|
+
var activeTitlePlugins = ['bold', 'italic', 'underline', 'strikethrough' // 'languageCharacters'
|
|
121
|
+
];
|
|
146
122
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
147
123
|
className: classes.root
|
|
148
|
-
},
|
|
149
|
-
|
|
124
|
+
}, showTitle && /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
125
|
+
className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, classes.disabledTitle, disabledTitle), classes.graphTitle),
|
|
126
|
+
markup: title || '',
|
|
127
|
+
width: finalWidth,
|
|
128
|
+
onChange: onChangeTitle,
|
|
129
|
+
placeholder: !disabledTitle && 'Click here to add a title for this graph',
|
|
130
|
+
toolbarOpts: {
|
|
131
|
+
noBorder: true
|
|
132
|
+
},
|
|
133
|
+
activePlugins: activeTitlePlugins
|
|
150
134
|
}), /*#__PURE__*/_react["default"].createElement("svg", {
|
|
151
135
|
width: finalWidth,
|
|
152
136
|
height: finalHeight,
|
|
@@ -164,22 +148,21 @@ var Root = /*#__PURE__*/function (_React$Component) {
|
|
|
164
148
|
}, children)));
|
|
165
149
|
}
|
|
166
150
|
}]);
|
|
167
|
-
|
|
168
151
|
return Root;
|
|
169
152
|
}(_react["default"].Component);
|
|
170
153
|
|
|
171
154
|
exports.Root = Root;
|
|
172
|
-
|
|
173
|
-
_defineProperty(Root, "propTypes", {
|
|
155
|
+
(0, _defineProperty2["default"])(Root, "propTypes", {
|
|
174
156
|
title: _propTypes["default"].string,
|
|
175
157
|
children: _types.ChildrenType,
|
|
176
158
|
graphProps: _types.GraphPropsType.isRequired,
|
|
177
159
|
onMouseMove: _propTypes["default"].func,
|
|
178
160
|
classes: _propTypes["default"].object.isRequired,
|
|
161
|
+
showTitle: _propTypes["default"].bool,
|
|
179
162
|
rootRef: _propTypes["default"].func
|
|
180
163
|
});
|
|
181
164
|
|
|
182
|
-
var styles = function styles() {
|
|
165
|
+
var styles = function styles(theme) {
|
|
183
166
|
return {
|
|
184
167
|
root: {
|
|
185
168
|
border: "solid 1px ".concat(_renderUi.color.primaryLight()),
|
|
@@ -190,6 +173,15 @@ var styles = function styles() {
|
|
|
190
173
|
graphBox: {
|
|
191
174
|
cursor: 'pointer',
|
|
192
175
|
userSelect: 'none'
|
|
176
|
+
},
|
|
177
|
+
graphTitle: {
|
|
178
|
+
color: _renderUi.color.text(),
|
|
179
|
+
fontSize: theme.typography.fontSize + 2,
|
|
180
|
+
padding: '8px 50px 0',
|
|
181
|
+
textAlign: 'center'
|
|
182
|
+
},
|
|
183
|
+
disabledTitle: {
|
|
184
|
+
pointerEvents: 'none'
|
|
193
185
|
}
|
|
194
186
|
};
|
|
195
187
|
};
|
package/lib/root.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/root.jsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["../src/root.jsx"],"names":["Root","g","props","graphProps","onMouseMove","scale","snap","coords","_groups","x","invert","y","snapped","on","mouseMove","bind","disabledTitle","children","classes","onChangeTitle","showTitle","title","rootRef","size","width","height","domain","range","topPadding","leftPadding","finalWidth","padding","finalHeight","activeTitlePlugins","root","graphTitle","noBorder","svg","r","graphBox","React","Component","PropTypes","string","ChildrenType","GraphPropsType","isRequired","func","object","bool","styles","theme","border","color","primaryLight","text","backgroundColor","background","cursor","userSelect","fontSize","typography","textAlign","pointerEvents"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { ChildrenType } from './types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { select, mouse } from 'd3-selection';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { color } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport cn from 'classnames';\n\nexport class Root extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n children: ChildrenType,\n graphProps: GraphPropsType.isRequired,\n onMouseMove: PropTypes.func,\n classes: PropTypes.object.isRequired,\n showTitle: PropTypes.bool,\n rootRef: PropTypes.func\n };\n\n mouseMove = g => {\n const { graphProps, onMouseMove } = this.props;\n\n if (!onMouseMove) {\n return;\n }\n\n const { scale, snap } = graphProps;\n const coords = mouse(g._groups[0][0]);\n const x = scale.x.invert(coords[0]);\n const y = scale.y.invert(coords[1]);\n\n const snapped = {\n x: snap.x(x),\n y: snap.y(y)\n };\n\n onMouseMove(snapped);\n };\n\n componentDidMount() {\n const g = select(this.g);\n g.on('mousemove', this.mouseMove.bind(this, g));\n }\n\n componentWillUnmount() {\n const g = select(this.g);\n g.on('mousemove', null);\n }\n\n render() {\n const {\n disabledTitle,\n graphProps,\n children,\n classes,\n onChangeTitle,\n showTitle,\n title,\n rootRef\n } = this.props;\n const {\n size: { width = 500, height = 500 },\n domain,\n range\n } = graphProps;\n const topPadding = 50;\n const leftPadding = topPadding + 10; // left side requires an extra padding of 10\n const finalWidth = width + leftPadding * 2 + (domain.padding || 0) * 2;\n const finalHeight = height + topPadding * 2 + (range.padding || 0) * 2;\n\n const activeTitlePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough'\n // 'languageCharacters'\n ];\n\n return (\n <div className={classes.root}>\n {showTitle && (\n <EditableHtml\n className={cn(\n {\n [classes.disabledTitle]: disabledTitle\n },\n classes.graphTitle\n )}\n markup={title || ''}\n width={finalWidth}\n onChange={onChangeTitle}\n placeholder={!disabledTitle && 'Click here to add a title for this graph'}\n toolbarOpts={{ noBorder: true }}\n activePlugins={activeTitlePlugins}\n />\n )}\n <svg width={finalWidth} height={finalHeight} className={classes.svg}>\n <g\n ref={r => {\n this.g = r;\n if (rootRef) {\n rootRef(r);\n }\n }}\n className={classes.graphBox}\n transform={`translate(${leftPadding}, ${topPadding})`}\n >\n {children}\n </g>\n </svg>\n </div>\n );\n }\n}\nconst styles = theme => ({\n root: {\n border: `solid 1px ${color.primaryLight()}`,\n color: color.text(),\n backgroundColor: color.background()\n },\n svg: {},\n graphBox: {\n cursor: 'pointer',\n userSelect: 'none'\n },\n graphTitle: {\n color: color.text(),\n fontSize: theme.typography.fontSize + 2,\n padding: '8px 50px 0',\n textAlign: 'center'\n },\n disabledTitle: {\n pointerEvents: 'none'\n }\n});\n\nexport default withStyles(styles)(Root);\n"],"file":"root.js"}
|
package/lib/trig.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -11,8 +13,6 @@ var _pointGeometry = _interopRequireDefault(require("@mapbox/point-geometry"));
|
|
|
11
13
|
|
|
12
14
|
var _debug = _interopRequireDefault(require("debug"));
|
|
13
15
|
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
-
|
|
16
16
|
var log = (0, _debug["default"])('pie-lib:plot:trig');
|
|
17
17
|
|
|
18
18
|
var toDegrees = function toDegrees(radians) {
|
package/lib/trig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/trig.js"],"names":["log","toDegrees","radians","Math","PI","toRadians","degrees","angle","a","b","vd","y","hd","x","atan2","NINETY","ONE_EIGHTY","TWO_SEVENTY","acuteXAngle","abs","acuteYAngle","hypotenuse","alpha","out","sin","edges","domain","range","destX","max","min","destY","aToB","diffEdge","dX","dY","bToA","getOpposingSide","hyp","getShortestSide","xh","yh","Number","isFinite","isNaN","Infinity","console","warn","bounds","l","enabled","bind","xRadians","yRadians","xSide","xH","ySide","yH","side","Error","point","Point","multiplier","multByPoint","normalized","add"],"mappings":"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","sourcesContent":["import { xy } from '../lib/utils';\nimport Point from '@mapbox/point-geometry';\nimport debug from 'debug';\nconst log = debug('pie-lib:plot:trig');\n\nexport const toDegrees = radians => radians * (180 / Math.PI);\nexport const toRadians = degrees => degrees * (Math.PI / 180);\n/**\n * return angle in radians between 2 points using counting degrees counter clockwise\n *\n * 0,0 + 1,1 = 45 in radians\n * 1,1 + 0,0 = 45?\n * @param {Point} a\n * @param {Point} b\n */\nexport const angle = (a, b) => {\n const vd = b.y - a.y;\n const hd = b.x - a.x;\n log(a, b, 'vd: ', vd, 'hd: ', hd);\n const radians = Math.atan2(vd, hd);\n return radians < 0 ? radians + Math.PI * 2 : radians;\n};\n\nconst NINETY = Math.PI / 2;\nconst ONE_EIGHTY = Math.PI;\nconst TWO_SEVENTY = ONE_EIGHTY + NINETY;\n\nexport const acuteXAngle = a => {\n log(toDegrees(a));\n\n if (a < NINETY) {\n return a;\n }\n\n if (a < ONE_EIGHTY) {\n return Math.abs(ONE_EIGHTY - a);\n }\n\n if (a < TWO_SEVENTY) {\n return Math.abs(ONE_EIGHTY - a);\n }\n\n return Math.abs(Math.PI * 2 - a);\n};\n\nexport const acuteYAngle = a => NINETY - acuteXAngle(a);\n\nexport const hypotenuse = (a, alpha) => {\n const out = Math.abs(a / Math.sin(alpha));\n\n return out;\n};\n\n/**\n * return 2 edge points for a,b within domain + range.\n * - one edge is from following a -> b to the bounds\n * - one edge is from following b -> a to the bounds\n * @param {{min: number, max: number}} domain\n * @param {{min: number, max: number}} range\n * @param {{x: number, y: number}} a\n * @param {{x: number, y: number}} b\n * @returns [{x: number, y: number}, {x: number, y: number}]\n */\nexport const edges = (domain, range) => (a, b) => {\n // const xDest =\n const destX = a.x < b.x ? domain.max : domain.min;\n const destY = a.y < b.y ? range.max : range.min;\n const aToB = diffEdge(xy(destX, destY), a, b);\n\n const dX = b.x < a.x ? domain.max : domain.min;\n const dY = b.y < a.y ? range.max : range.min;\n const bToA = diffEdge(xy(dX, dY), b, a);\n return [aToB, bToA];\n};\n\n/** get length of side A of a triangle from H and angle Alpha */\nexport const getOpposingSide = (hyp, angle) => {\n log('[getOpposingSide] hyp: ', hyp, 'angle:', angle);\n return Math.abs(hyp * Math.sin(angle));\n};\n\nconst getShortestSide = (xh, yh) => {\n if (Number.isFinite(xh) && Number.isFinite(yh)) {\n if (xh === 0 && yh > 0) {\n return 'y';\n }\n if (yh === 0 && xh > 0) {\n return 'x';\n }\n return xh < yh ? 'x' : 'y';\n }\n if (isNaN(xh) && !isNaN(yh)) {\n return 'y';\n }\n if (!isNaN(xh) && isNaN(yh)) {\n return 'x';\n }\n if (xh === Infinity) {\n return 'y';\n }\n if (yh === Infinity) {\n return 'x';\n }\n\n // eslint-disable-next-line no-console\n console.warn('hypotenuse - which is shorter? x:', xh, 'y:', yh);\n};\n/**\n * return the difference between bounds and a as a Point\n * @param {*} bounds\n */\nexport const diffEdge = (bounds, a, b) => {\n let l = log.enabled ? log.bind(log, `diffEdge: [${a.x},${a.y} -> ${b.x},${b.y}]`) : () => {};\n const xRadians = angle(a, b);\n l('x angle', toDegrees(xRadians));\n const yRadians = Math.abs(xRadians - toRadians(90));\n l('y angle', toDegrees(yRadians));\n const xSide = Math.abs(a.x - bounds.x);\n\n /**\n * Draw 2 triangles:\n * 1 with a horizontal line from a to the graph x edge\n * 1 with a vertical line from a to the graph y edge\n * Calculate the hypotenuse for both, whichever is shorter\n * indicates that we should use that triangle to get the edge point.\n */\n const xH = hypotenuse(xSide, yRadians);\n\n const ySide = Math.abs(a.y - bounds.y);\n const yH = hypotenuse(ySide, xRadians);\n\n l('x: side', xSide, 'h:', xH);\n l('y: side', ySide, 'h:', yH);\n const side = getShortestSide(xH, yH);\n\n if (side !== 'x' && side !== 'y') {\n throw new Error('Cant decide which hypotenuse to use');\n }\n const point =\n side === 'x'\n ? new Point(xSide, getOpposingSide(xH, xRadians))\n : new Point(getOpposingSide(yH, yRadians), ySide);\n\n l('point:', point);\n const multiplier = new Point(b.x < a.x ? -1 : 1, b.y < a.y ? -1 : 1);\n l('multiplier:', multiplier);\n const out = point.multByPoint(multiplier);\n l('out:', out);\n const normalized = out.add(new Point(a.x, a.y));\n l('normalized:', normalized);\n return normalized;\n};\n"],"file":"trig.js"}
|
|
1
|
+
{"version":3,"sources":["../src/trig.js"],"names":["log","toDegrees","radians","Math","PI","toRadians","degrees","angle","a","b","vd","y","hd","x","atan2","NINETY","ONE_EIGHTY","TWO_SEVENTY","acuteXAngle","abs","acuteYAngle","hypotenuse","alpha","out","sin","edges","domain","range","destX","max","min","destY","aToB","diffEdge","dX","dY","bToA","getOpposingSide","hyp","getShortestSide","xh","yh","Number","isFinite","isNaN","Infinity","console","warn","bounds","l","enabled","bind","xRadians","yRadians","xSide","xH","ySide","yH","side","Error","point","Point","multiplier","multByPoint","normalized","add"],"mappings":"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","sourcesContent":["import { xy } from '../lib/utils';\nimport Point from '@mapbox/point-geometry';\nimport debug from 'debug';\nconst log = debug('pie-lib:plot:trig');\n\nexport const toDegrees = radians => radians * (180 / Math.PI);\nexport const toRadians = degrees => degrees * (Math.PI / 180);\n/**\n * return angle in radians between 2 points using counting degrees counter clockwise\n *\n * 0,0 + 1,1 = 45 in radians\n * 1,1 + 0,0 = 45?\n * @param {Point} a\n * @param {Point} b\n */\nexport const angle = (a, b) => {\n const vd = b.y - a.y;\n const hd = b.x - a.x;\n log(a, b, 'vd: ', vd, 'hd: ', hd);\n const radians = Math.atan2(vd, hd);\n return radians < 0 ? radians + Math.PI * 2 : radians;\n};\n\nconst NINETY = Math.PI / 2;\nconst ONE_EIGHTY = Math.PI;\nconst TWO_SEVENTY = ONE_EIGHTY + NINETY;\n\nexport const acuteXAngle = a => {\n log(toDegrees(a));\n\n if (a < NINETY) {\n return a;\n }\n\n if (a < ONE_EIGHTY) {\n return Math.abs(ONE_EIGHTY - a);\n }\n\n if (a < TWO_SEVENTY) {\n return Math.abs(ONE_EIGHTY - a);\n }\n\n return Math.abs(Math.PI * 2 - a);\n};\n\nexport const acuteYAngle = a => NINETY - acuteXAngle(a);\n\nexport const hypotenuse = (a, alpha) => {\n const out = Math.abs(a / Math.sin(alpha));\n\n return out;\n};\n\n/**\n * return 2 edge points for a,b within domain + range.\n * - one edge is from following a -> b to the bounds\n * - one edge is from following b -> a to the bounds\n * @param {{min: number, max: number}} domain\n * @param {{min: number, max: number}} range\n * @param {{x: number, y: number}} a\n * @param {{x: number, y: number}} b\n * @returns [{x: number, y: number}, {x: number, y: number}]\n */\nexport const edges = (domain, range) => (a, b) => {\n // const xDest =\n const destX = a.x < b.x ? domain.max : domain.min;\n const destY = a.y < b.y ? range.max : range.min;\n const aToB = diffEdge(xy(destX, destY), a, b);\n\n const dX = b.x < a.x ? domain.max : domain.min;\n const dY = b.y < a.y ? range.max : range.min;\n const bToA = diffEdge(xy(dX, dY), b, a);\n return [aToB, bToA];\n};\n\n/** get length of side A of a triangle from H and angle Alpha */\nexport const getOpposingSide = (hyp, angle) => {\n log('[getOpposingSide] hyp: ', hyp, 'angle:', angle);\n return Math.abs(hyp * Math.sin(angle));\n};\n\nconst getShortestSide = (xh, yh) => {\n if (Number.isFinite(xh) && Number.isFinite(yh)) {\n if (xh === 0 && yh > 0) {\n return 'y';\n }\n if (yh === 0 && xh > 0) {\n return 'x';\n }\n return xh < yh ? 'x' : 'y';\n }\n if (isNaN(xh) && !isNaN(yh)) {\n return 'y';\n }\n if (!isNaN(xh) && isNaN(yh)) {\n return 'x';\n }\n if (xh === Infinity) {\n return 'y';\n }\n if (yh === Infinity) {\n return 'x';\n }\n\n // eslint-disable-next-line no-console\n console.warn('hypotenuse - which is shorter? x:', xh, 'y:', yh);\n};\n/**\n * return the difference between bounds and a as a Point\n * @param {*} bounds\n */\nexport const diffEdge = (bounds, a, b) => {\n let l = log.enabled ? log.bind(log, `diffEdge: [${a.x},${a.y} -> ${b.x},${b.y}]`) : () => {};\n const xRadians = angle(a, b);\n l('x angle', toDegrees(xRadians));\n const yRadians = Math.abs(xRadians - toRadians(90));\n l('y angle', toDegrees(yRadians));\n const xSide = Math.abs(a.x - bounds.x);\n\n /**\n * Draw 2 triangles:\n * 1 with a horizontal line from a to the graph x edge\n * 1 with a vertical line from a to the graph y edge\n * Calculate the hypotenuse for both, whichever is shorter\n * indicates that we should use that triangle to get the edge point.\n */\n const xH = hypotenuse(xSide, yRadians);\n\n const ySide = Math.abs(a.y - bounds.y);\n const yH = hypotenuse(ySide, xRadians);\n\n l('x: side', xSide, 'h:', xH);\n l('y: side', ySide, 'h:', yH);\n const side = getShortestSide(xH, yH);\n\n if (side !== 'x' && side !== 'y') {\n throw new Error('Cant decide which hypotenuse to use');\n }\n const point =\n side === 'x'\n ? new Point(xSide, getOpposingSide(xH, xRadians))\n : new Point(getOpposingSide(yH, yRadians), ySide);\n\n l('point:', point);\n const multiplier = new Point(b.x < a.x ? -1 : 1, b.y < a.y ? -1 : 1);\n l('multiplier:', multiplier);\n const out = point.multByPoint(multiplier);\n l('out:', out);\n const normalized = out.add(new Point(a.x, a.y));\n l('normalized:', normalized);\n return normalized;\n};\n"],"file":"trig.js"}
|
package/lib/types.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -7,8 +9,6 @@ exports.SnapType = exports.SizeType = exports.ScaleType = exports.RangeType = ex
|
|
|
7
9
|
|
|
8
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
11
|
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
|
-
|
|
12
12
|
var BaseDomainRangeType = {
|
|
13
13
|
min: _propTypes["default"].number.isRequired,
|
|
14
14
|
max: _propTypes["default"].number.isRequired,
|
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.js"],"names":["BaseDomainRangeType","min","PropTypes","number","isRequired","max","step","DomainType","shape","RangeType","SizeType","width","height","PointType","x","y","ChildrenType","oneOfType","arrayOf","node","ScaleType","func","SnapType","GraphPropsType","scale","snap","domain","range","size"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/types.js"],"names":["BaseDomainRangeType","min","PropTypes","number","isRequired","max","step","DomainType","shape","RangeType","SizeType","width","height","PointType","x","y","ChildrenType","oneOfType","arrayOf","node","ScaleType","func","SnapType","GraphPropsType","scale","snap","domain","range","size"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,mBAAmB,GAAG;AACjCC,EAAAA,GAAG,EAAEC,sBAAUC,MAAV,CAAiBC,UADW;AAEjCC,EAAAA,GAAG,EAAEH,sBAAUC,MAAV,CAAiBC,UAFW;AAGjCE,EAAAA,IAAI,EAAEJ,sBAAUC;AAHiB,CAA5B;;;AAMA,IAAMI,UAAU,GAAGL,sBAAUM,KAAV,CAAgBR,mBAAhB,CAAnB;;;;AAEA,IAAMS,SAAS,GAAGP,sBAAUM,KAAV,CAAgBR,mBAAhB,CAAlB;;;;AAEA,IAAMU,QAAQ,GAAGR,sBAAUM,KAAV,CAAgB;AACtCG,EAAAA,KAAK,EAAET,sBAAUC,MAAV,CAAiBC,UADc;AAEtCQ,EAAAA,MAAM,EAAEV,sBAAUC,MAAV,CAAiBC;AAFa,CAAhB,CAAjB;;;;AAKA,IAAMS,SAAS,GAAGX,sBAAUM,KAAV,CAAgB;AACvCM,EAAAA,CAAC,EAAEZ,sBAAUC,MAAV,CAAiBC,UADmB;AAEvCW,EAAAA,CAAC,EAAEb,sBAAUC,MAAV,CAAiBC;AAFmB,CAAhB,CAAlB;;;;AAKA,IAAMY,YAAY,GAAGd,sBAAUe,SAAV,CAAoB,CAACf,sBAAUgB,OAAV,CAAkBhB,sBAAUiB,IAA5B,CAAD,EAAoCjB,sBAAUiB,IAA9C,CAApB,EACzBf,UADI;;;;AAGA,IAAMgB,SAAS,GAAGlB,sBAAUM,KAAV,CAAgB;AACvCM,EAAAA,CAAC,EAAEZ,sBAAUmB,IAAV,CAAejB,UADqB;AAEvCW,EAAAA,CAAC,EAAEb,sBAAUmB,IAAV,CAAejB;AAFqB,CAAhB,CAAlB;;;;AAKA,IAAMkB,QAAQ,GAAGpB,sBAAUM,KAAV,CAAgB;AACtCM,EAAAA,CAAC,EAAEZ,sBAAUmB,IAAV,CAAejB,UADoB;AAEtCW,EAAAA,CAAC,EAAEb,sBAAUmB,IAAV,CAAejB;AAFoB,CAAhB,CAAjB;;;;AAKA,IAAMmB,cAAc,GAAGrB,sBAAUM,KAAV,CAAgB;AAC5CgB,EAAAA,KAAK,EAAEJ,SAAS,CAAChB,UAD2B;AAE5CqB,EAAAA,IAAI,EAAEH,QAAQ,CAAClB,UAF6B;AAG5CsB,EAAAA,MAAM,EAAEnB,UAAU,CAACH,UAHyB;AAI5CuB,EAAAA,KAAK,EAAElB,SAAS,CAACL,UAJ2B;AAK5CwB,EAAAA,IAAI,EAAElB,QAAQ,CAACN;AAL6B,CAAhB,CAAvB","sourcesContent":["import PropTypes from 'prop-types';\n\nexport const BaseDomainRangeType = {\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n step: PropTypes.number\n};\n\nexport const DomainType = PropTypes.shape(BaseDomainRangeType);\n\nexport const RangeType = PropTypes.shape(BaseDomainRangeType);\n\nexport const SizeType = PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n});\n\nexport const PointType = PropTypes.shape({\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired\n});\n\nexport const ChildrenType = PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n .isRequired;\n\nexport const ScaleType = PropTypes.shape({\n x: PropTypes.func.isRequired,\n y: PropTypes.func.isRequired\n});\n\nexport const SnapType = PropTypes.shape({\n x: PropTypes.func.isRequired,\n y: PropTypes.func.isRequired\n});\n\nexport const GraphPropsType = PropTypes.shape({\n scale: ScaleType.isRequired,\n snap: SnapType.isRequired,\n domain: DomainType.isRequired,\n range: RangeType.isRequired,\n size: SizeType.isRequired\n});\n"],"file":"types.js"}
|
package/lib/utils.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -23,8 +25,6 @@ var _tail = _interopRequireDefault(require("lodash/tail"));
|
|
|
23
25
|
|
|
24
26
|
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
25
27
|
|
|
26
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
27
|
-
|
|
28
28
|
var xy = function xy(x, y) {
|
|
29
29
|
return {
|
|
30
30
|
x: x,
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["xy","x","y","buildSizeArray","size","padding","Number","isFinite","Math","max","half","round","tickCount","min","step","abs","getInterval","domain","ticks","major","minor","Error","distance","minorTicks","normalizedMajor","isNaN","divider","raw","parseFloat","toFixed","mkRange","interval","splice","length","snapTo","value","rng","filter","v","reduce","prev","curr","currentDistance","previousDistance","buildTickModel","scaleFn","map","r","index","isMajor","polygonToArea","points","h","area","left","top","bottom","right","a","p","lineToArea","from","to","bounds","range","point","o","Point","getDelta","sub","bandKey","d","label","isDomainRangeEqual","graphProps","nextGraphProps","findLongestWord","longestWord","replace","split","sort","b","amountToIncreaseWidth"],"mappings":"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","sourcesContent":["import invariant from 'invariant';\nimport range from 'lodash/range';\nimport Point from '@mapbox/point-geometry';\nimport head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport isEqual from 'lodash/isEqual';\n\nexport const xy = (x, y) => ({ x, y });\n\nexport const buildSizeArray = (size, padding) => {\n padding = Number.isFinite(padding) ? Math.max(padding, 0) : 0;\n invariant(padding < size, 'padding must be less than size');\n const half = Math.round(padding * 0.5);\n return [half, size - half];\n};\n\nexport const tickCount = (min, max, step) => {\n invariant(min < max, 'min must be less than max');\n const size = Math.abs(min - max);\n return Math.round(size / step);\n};\n\nexport function getInterval(domain, ticks) {\n const { min, max } = domain;\n const { major, minor } = ticks;\n\n if (min >= max) {\n throw new Error(`min is > max: ${min} > ${max}`);\n }\n\n const distance = max - min;\n const minorTicks = minor > 0 ? minor + 1 : 1;\n const normalizedMajor = major - 1;\n\n if (isNaN(normalizedMajor)) {\n throw new Error('Tick Frequency must be 2 or higher');\n }\n\n if (normalizedMajor <= 0) {\n throw new Error('Tick Frequency must be 2 or higher');\n }\n\n const divider = normalizedMajor * minorTicks;\n const raw = distance / divider;\n return parseFloat(Number(raw).toFixed(4));\n}\n\nconst mkRange = (min, max, interval) => {\n const raw = range(min, max, interval);\n /* Fix the last step due to rounding errors */\n raw.splice(raw.length, 1, max);\n return raw;\n};\n\nexport function snapTo(min, max, interval, value) {\n if (value >= max) {\n return max;\n }\n\n if (value <= min) {\n return min;\n }\n\n let rng = mkRange(min, max, interval);\n\n rng = rng.filter(v => {\n return Math.abs(value - v) <= interval;\n });\n\n return (\n rng.length &&\n rng.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n}\n\nexport function buildTickModel(domain, ticks, interval, scaleFn) {\n const rng = mkRange(domain.min, domain.max, interval);\n\n return rng.map((r, index) => {\n const isMajor = index % (ticks.minor + 1) === 0;\n\n return {\n value: r,\n major: isMajor,\n x: scaleFn(r)\n };\n });\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) => {\n const left = Math.min(from.x, to.x);\n const top = Math.max(from.y, to.y);\n const bottom = Math.min(from.y, to.y);\n const right = Math.max(from.x, to.x);\n return { left, top, bottom, right };\n};\n\nexport const bounds = (area, domain, range) => {\n return {\n left: domain.min - area.left,\n right: Math.abs(area.right - domain.max),\n top: Math.abs(area.top - range.max),\n bottom: range.min - area.bottom\n };\n};\n\nexport const point = o => new Point(o.x, o.y);\nexport const getDelta = (from, to) => {\n return point(to).sub(point(from));\n};\n\nexport const bandKey = (d, index) => `${index}-${d.label || '-'}`;\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return (\n isEqual(graphProps.domain, nextGraphProps.domain) &&\n isEqual(graphProps.range, nextGraphProps.range)\n );\n};\n\n// findLongestWord is also used in graphing\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 graphing\nexport const amountToIncreaseWidth = longestWord => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 20;\n};\n"],"file":"utils.js"}
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["xy","x","y","buildSizeArray","size","padding","Number","isFinite","Math","max","half","round","tickCount","min","step","abs","getInterval","domain","ticks","major","minor","Error","distance","minorTicks","normalizedMajor","isNaN","divider","raw","parseFloat","toFixed","mkRange","interval","splice","length","snapTo","value","rng","filter","v","reduce","prev","curr","currentDistance","previousDistance","buildTickModel","scaleFn","map","r","index","isMajor","polygonToArea","points","h","area","left","top","bottom","right","a","p","lineToArea","from","to","bounds","range","point","o","Point","getDelta","sub","bandKey","d","label","isDomainRangeEqual","graphProps","nextGraphProps","findLongestWord","longestWord","replace","split","sort","b","amountToIncreaseWidth"],"mappings":"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","sourcesContent":["import invariant from 'invariant';\nimport range from 'lodash/range';\nimport Point from '@mapbox/point-geometry';\nimport head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport isEqual from 'lodash/isEqual';\n\nexport const xy = (x, y) => ({ x, y });\n\nexport const buildSizeArray = (size, padding) => {\n padding = Number.isFinite(padding) ? Math.max(padding, 0) : 0;\n invariant(padding < size, 'padding must be less than size');\n const half = Math.round(padding * 0.5);\n return [half, size - half];\n};\n\nexport const tickCount = (min, max, step) => {\n invariant(min < max, 'min must be less than max');\n const size = Math.abs(min - max);\n return Math.round(size / step);\n};\n\nexport function getInterval(domain, ticks) {\n const { min, max } = domain;\n const { major, minor } = ticks;\n\n if (min >= max) {\n throw new Error(`min is > max: ${min} > ${max}`);\n }\n\n const distance = max - min;\n const minorTicks = minor > 0 ? minor + 1 : 1;\n const normalizedMajor = major - 1;\n\n if (isNaN(normalizedMajor)) {\n throw new Error('Tick Frequency must be 2 or higher');\n }\n\n if (normalizedMajor <= 0) {\n throw new Error('Tick Frequency must be 2 or higher');\n }\n\n const divider = normalizedMajor * minorTicks;\n const raw = distance / divider;\n return parseFloat(Number(raw).toFixed(4));\n}\n\nconst mkRange = (min, max, interval) => {\n const raw = range(min, max, interval);\n /* Fix the last step due to rounding errors */\n raw.splice(raw.length, 1, max);\n return raw;\n};\n\nexport function snapTo(min, max, interval, value) {\n if (value >= max) {\n return max;\n }\n\n if (value <= min) {\n return min;\n }\n\n let rng = mkRange(min, max, interval);\n\n rng = rng.filter(v => {\n return Math.abs(value - v) <= interval;\n });\n\n return (\n rng.length &&\n rng.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n}\n\nexport function buildTickModel(domain, ticks, interval, scaleFn) {\n const rng = mkRange(domain.min, domain.max, interval);\n\n return rng.map((r, index) => {\n const isMajor = index % (ticks.minor + 1) === 0;\n\n return {\n value: r,\n major: isMajor,\n x: scaleFn(r)\n };\n });\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) => {\n const left = Math.min(from.x, to.x);\n const top = Math.max(from.y, to.y);\n const bottom = Math.min(from.y, to.y);\n const right = Math.max(from.x, to.x);\n return { left, top, bottom, right };\n};\n\nexport const bounds = (area, domain, range) => {\n return {\n left: domain.min - area.left,\n right: Math.abs(area.right - domain.max),\n top: Math.abs(area.top - range.max),\n bottom: range.min - area.bottom\n };\n};\n\nexport const point = o => new Point(o.x, o.y);\nexport const getDelta = (from, to) => {\n return point(to).sub(point(from));\n};\n\nexport const bandKey = (d, index) => `${index}-${d.label || '-'}`;\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return (\n isEqual(graphProps.domain, nextGraphProps.domain) &&\n isEqual(graphProps.range, nextGraphProps.range)\n );\n};\n\n// findLongestWord is also used in graphing\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 graphing\nexport const amountToIncreaseWidth = longestWord => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 20;\n};\n"],"file":"utils.js"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "2.
|
|
6
|
+
"version": "2.3.0",
|
|
7
7
|
"description": "Some underlying components for building charts/graphs",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -38,6 +38,6 @@
|
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"react": "^16.8.1"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "5f0932d39d7f01be0f96665b8fbe45ee745c2868",
|
|
42
42
|
"scripts": {}
|
|
43
43
|
}
|
package/src/root.jsx
CHANGED
|
@@ -1,27 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ChildrenType } from './types';
|
|
3
3
|
import { withStyles } from '@material-ui/core/styles';
|
|
4
|
-
import Typography from '@material-ui/core/Typography';
|
|
5
4
|
import { select, mouse } from 'd3-selection';
|
|
6
5
|
import PropTypes from 'prop-types';
|
|
7
6
|
import { GraphPropsType } from './types';
|
|
8
7
|
import { color } from '@pie-lib/render-ui';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
title: {
|
|
12
|
-
color: color.text(),
|
|
13
|
-
textAlign: 'center',
|
|
14
|
-
paddingTop: theme.spacing.unit * 2,
|
|
15
|
-
fontSize: theme.typography.fontSize + 6
|
|
16
|
-
}
|
|
17
|
-
}))(({ value, classes }) => (
|
|
18
|
-
<Typography
|
|
19
|
-
className={classes.title}
|
|
20
|
-
color="primary"
|
|
21
|
-
variant="h5"
|
|
22
|
-
dangerouslySetInnerHTML={{ __html: value }}
|
|
23
|
-
/>
|
|
24
|
-
));
|
|
8
|
+
import EditableHtml from '@pie-lib/editable-html';
|
|
9
|
+
import cn from 'classnames';
|
|
25
10
|
|
|
26
11
|
export class Root extends React.Component {
|
|
27
12
|
static propTypes = {
|
|
@@ -30,6 +15,7 @@ export class Root extends React.Component {
|
|
|
30
15
|
graphProps: GraphPropsType.isRequired,
|
|
31
16
|
onMouseMove: PropTypes.func,
|
|
32
17
|
classes: PropTypes.object.isRequired,
|
|
18
|
+
showTitle: PropTypes.bool,
|
|
33
19
|
rootRef: PropTypes.func
|
|
34
20
|
};
|
|
35
21
|
|
|
@@ -64,7 +50,16 @@ export class Root extends React.Component {
|
|
|
64
50
|
}
|
|
65
51
|
|
|
66
52
|
render() {
|
|
67
|
-
const {
|
|
53
|
+
const {
|
|
54
|
+
disabledTitle,
|
|
55
|
+
graphProps,
|
|
56
|
+
children,
|
|
57
|
+
classes,
|
|
58
|
+
onChangeTitle,
|
|
59
|
+
showTitle,
|
|
60
|
+
title,
|
|
61
|
+
rootRef
|
|
62
|
+
} = this.props;
|
|
68
63
|
const {
|
|
69
64
|
size: { width = 500, height = 500 },
|
|
70
65
|
domain,
|
|
@@ -75,9 +70,32 @@ export class Root extends React.Component {
|
|
|
75
70
|
const finalWidth = width + leftPadding * 2 + (domain.padding || 0) * 2;
|
|
76
71
|
const finalHeight = height + topPadding * 2 + (range.padding || 0) * 2;
|
|
77
72
|
|
|
73
|
+
const activeTitlePlugins = [
|
|
74
|
+
'bold',
|
|
75
|
+
'italic',
|
|
76
|
+
'underline',
|
|
77
|
+
'strikethrough'
|
|
78
|
+
// 'languageCharacters'
|
|
79
|
+
];
|
|
80
|
+
|
|
78
81
|
return (
|
|
79
82
|
<div className={classes.root}>
|
|
80
|
-
{
|
|
83
|
+
{showTitle && (
|
|
84
|
+
<EditableHtml
|
|
85
|
+
className={cn(
|
|
86
|
+
{
|
|
87
|
+
[classes.disabledTitle]: disabledTitle
|
|
88
|
+
},
|
|
89
|
+
classes.graphTitle
|
|
90
|
+
)}
|
|
91
|
+
markup={title || ''}
|
|
92
|
+
width={finalWidth}
|
|
93
|
+
onChange={onChangeTitle}
|
|
94
|
+
placeholder={!disabledTitle && 'Click here to add a title for this graph'}
|
|
95
|
+
toolbarOpts={{ noBorder: true }}
|
|
96
|
+
activePlugins={activeTitlePlugins}
|
|
97
|
+
/>
|
|
98
|
+
)}
|
|
81
99
|
<svg width={finalWidth} height={finalHeight} className={classes.svg}>
|
|
82
100
|
<g
|
|
83
101
|
ref={r => {
|
|
@@ -96,7 +114,7 @@ export class Root extends React.Component {
|
|
|
96
114
|
);
|
|
97
115
|
}
|
|
98
116
|
}
|
|
99
|
-
const styles =
|
|
117
|
+
const styles = theme => ({
|
|
100
118
|
root: {
|
|
101
119
|
border: `solid 1px ${color.primaryLight()}`,
|
|
102
120
|
color: color.text(),
|
|
@@ -106,6 +124,15 @@ const styles = () => ({
|
|
|
106
124
|
graphBox: {
|
|
107
125
|
cursor: 'pointer',
|
|
108
126
|
userSelect: 'none'
|
|
127
|
+
},
|
|
128
|
+
graphTitle: {
|
|
129
|
+
color: color.text(),
|
|
130
|
+
fontSize: theme.typography.fontSize + 2,
|
|
131
|
+
padding: '8px 50px 0',
|
|
132
|
+
textAlign: 'center'
|
|
133
|
+
},
|
|
134
|
+
disabledTitle: {
|
|
135
|
+
pointerEvents: 'none'
|
|
109
136
|
}
|
|
110
137
|
});
|
|
111
138
|
|