@pie-lib/charting 5.24.1 → 5.25.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 +17 -0
- package/lib/actions-button.js +4 -3
- package/lib/actions-button.js.map +1 -1
- package/lib/axes.js +44 -10
- package/lib/axes.js.map +1 -1
- package/lib/bars/common/bars.js +63 -9
- package/lib/bars/common/bars.js.map +1 -1
- package/lib/bars/common/correct-check-icon.js +55 -0
- package/lib/bars/common/correct-check-icon.js.map +1 -0
- package/lib/chart.js +17 -10
- package/lib/chart.js.map +1 -1
- package/lib/common/correctness-indicators.js +99 -0
- package/lib/common/correctness-indicators.js.map +1 -0
- package/lib/common/drag-handle.js +36 -8
- package/lib/common/drag-handle.js.map +1 -1
- package/lib/line/common/drag-handle.js +32 -9
- package/lib/line/common/drag-handle.js.map +1 -1
- package/lib/line/common/line.js +5 -2
- package/lib/line/common/line.js.map +1 -1
- package/lib/line/line-cross.js +26 -5
- package/lib/line/line-cross.js.map +1 -1
- package/lib/line/line-dot.js +24 -4
- package/lib/line/line-dot.js.map +1 -1
- package/lib/mark-label.js +18 -7
- package/lib/mark-label.js.map +1 -1
- package/lib/plot/common/plot.js +119 -9
- package/lib/plot/common/plot.js.map +1 -1
- package/lib/plot/dot.js +17 -4
- package/lib/plot/dot.js.map +1 -1
- package/lib/plot/line.js +19 -6
- package/lib/plot/line.js.map +1 -1
- package/package.json +5 -5
- package/src/__tests__/__snapshots__/axes.test.jsx.snap +5 -1
- package/src/__tests__/__snapshots__/chart.test.jsx.snap +6 -3
- package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +62 -56
- package/src/actions-button.jsx +3 -2
- package/src/axes.jsx +37 -3
- package/src/bars/common/bars.jsx +57 -4
- package/src/bars/common/correct-check-icon.jsx +20 -0
- package/src/chart.jsx +12 -3
- package/src/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +3 -0
- package/src/common/correctness-indicators.jsx +55 -0
- package/src/common/drag-handle.jsx +28 -14
- package/src/line/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +5 -0
- package/src/line/common/__tests__/__snapshots__/line.test.jsx.snap +2 -0
- package/src/line/common/drag-handle.jsx +31 -8
- package/src/line/common/line.jsx +3 -1
- package/src/line/line-cross.js +25 -3
- package/src/line/line-dot.js +40 -3
- package/src/mark-label.jsx +73 -58
- package/src/plot/common/__tests__/__snapshots__/plot.test.jsx.snap +1 -0
- package/src/plot/common/plot.jsx +114 -5
- package/src/plot/dot.js +19 -3
- package/src/plot/line.js +18 -4
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.CorrectCheckIcon = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var CorrectCheckIcon = function CorrectCheckIcon(_ref) {
|
|
13
|
+
var dashColor = _ref.dashColor;
|
|
14
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
15
|
+
width: "24",
|
|
16
|
+
height: "24",
|
|
17
|
+
viewBox: "0 0 24 24",
|
|
18
|
+
fill: "none",
|
|
19
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
20
|
+
}, /*#__PURE__*/_react["default"].createElement("circle", {
|
|
21
|
+
cx: "12",
|
|
22
|
+
cy: "12",
|
|
23
|
+
r: "11",
|
|
24
|
+
fill: "white",
|
|
25
|
+
stroke: dashColor || '#7E8494',
|
|
26
|
+
strokeWidth: "2",
|
|
27
|
+
strokeDasharray: "5 5"
|
|
28
|
+
}), /*#__PURE__*/_react["default"].createElement("mask", {
|
|
29
|
+
id: "path-2-outside-1_3089_3799",
|
|
30
|
+
maskUnits: "userSpaceOnUse",
|
|
31
|
+
x: "2",
|
|
32
|
+
y: "3",
|
|
33
|
+
width: "19",
|
|
34
|
+
height: "18",
|
|
35
|
+
fill: "black"
|
|
36
|
+
}, /*#__PURE__*/_react["default"].createElement("rect", {
|
|
37
|
+
fill: "white",
|
|
38
|
+
x: "2",
|
|
39
|
+
y: "3",
|
|
40
|
+
width: "19",
|
|
41
|
+
height: "18"
|
|
42
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
43
|
+
d: "M12 20C9.125 20 6.5 18.5 5.0625 16C3.625 13.5312 3.625 10.5 5.0625 8C6.5 5.53125 9.125 4 12 4C14.8438 4 17.4688 5.53125 18.9062 8C20.3438 10.5 20.3438 13.5312 18.9062 16C17.4688 18.5 14.8438 20 12 20ZM15.5312 10.5312H15.5C15.8125 10.25 15.8125 9.78125 15.5 9.46875C15.2188 9.1875 14.75 9.1875 14.4688 9.46875L11 12.9688L9.53125 11.5C9.21875 11.1875 8.75 11.1875 8.46875 11.5C8.15625 11.7812 8.15625 12.25 8.46875 12.5312L10.4688 14.5312C10.75 14.8438 11.2188 14.8438 11.5312 14.5312L15.5312 10.5312Z"
|
|
44
|
+
})), /*#__PURE__*/_react["default"].createElement("path", {
|
|
45
|
+
d: "M12 20C9.125 20 6.5 18.5 5.0625 16C3.625 13.5312 3.625 10.5 5.0625 8C6.5 5.53125 9.125 4 12 4C14.8438 4 17.4688 5.53125 18.9062 8C20.3438 10.5 20.3438 13.5312 18.9062 16C17.4688 18.5 14.8438 20 12 20ZM15.5312 10.5312H15.5C15.8125 10.25 15.8125 9.78125 15.5 9.46875C15.2188 9.1875 14.75 9.1875 14.4688 9.46875L11 12.9688L9.53125 11.5C9.21875 11.1875 8.75 11.1875 8.46875 11.5C8.15625 11.7812 8.15625 12.25 8.46875 12.5312L10.4688 14.5312C10.75 14.8438 11.2188 14.8438 11.5312 14.5312L15.5312 10.5312Z",
|
|
46
|
+
fill: "#0EA449"
|
|
47
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
48
|
+
d: "M5.0625 16L5.92942 15.5015L5.92668 15.4968L5.0625 16ZM5.0625 8L4.19831 7.4968L4.19559 7.50153L5.0625 8ZM18.9062 8L19.7732 7.50152L19.7704 7.49681L18.9062 8ZM18.9062 16L18.0421 15.4968L18.0393 15.5015L18.9062 16ZM15.5312 10.5312L16.2384 11.2384L17.9455 9.53125H15.5312V10.5312ZM15.5 10.5312L14.831 9.78796L12.894 11.5312H15.5V10.5312ZM14.4688 9.46875L13.7616 8.76164L13.7585 8.76482L14.4688 9.46875ZM11 12.9688L10.2929 13.6759L11.0032 14.3861L11.7103 13.6727L11 12.9688ZM8.46875 11.5L9.13771 12.2433L9.17684 12.2081L9.21204 12.169L8.46875 11.5ZM8.46875 12.5312L9.17586 11.8241L9.15726 11.8055L9.13771 11.788L8.46875 12.5312ZM10.4688 14.5312L11.212 13.8623L11.1945 13.8427L11.1759 13.8241L10.4688 14.5312ZM12 20V19C9.479 19 7.18657 17.6879 5.92941 15.5015L5.0625 16L4.19559 16.4985C5.81343 19.3121 8.771 21 12 21V20ZM5.0625 16L5.92668 15.4968C4.6714 13.341 4.66824 10.6918 5.92941 8.49847L5.0625 8L4.19559 7.50153C2.58176 10.3082 2.5786 13.7215 4.19832 16.5032L5.0625 16ZM5.0625 8L5.92668 8.50319C7.18712 6.33851 9.48502 5 12 5V4V3C8.76498 3 5.81288 4.72399 4.19832 7.49681L5.0625 8ZM12 4V5C14.4816 5 16.7805 6.33661 18.0421 8.50319L18.9062 8L19.7704 7.49681C18.157 4.72589 15.2059 3 12 3V4ZM18.9062 8L18.0393 8.49847C19.3005 10.6918 19.2973 13.341 18.0421 15.4968L18.9062 16L19.7704 16.5032C21.3902 13.7215 21.387 10.3082 19.7732 7.50153L18.9062 8ZM18.9062 16L18.0393 15.5015C16.7811 17.6898 14.4876 19 12 19V20V21C15.1999 21 18.1564 19.3102 19.7732 16.4985L18.9062 16ZM15.5312 10.5312V9.53125H15.5V10.5312V11.5312H15.5312V10.5312ZM15.5 10.5312L16.169 11.2745C16.9447 10.5764 16.8883 9.44281 16.2071 8.76164L15.5 9.46875L14.7929 10.1759C14.7696 10.1525 14.7344 10.0966 14.7344 10.0117C14.7344 9.92377 14.7735 9.83972 14.831 9.78796L15.5 10.5312ZM15.5 9.46875L16.2071 8.76164C15.5353 8.08987 14.4334 8.08987 13.7616 8.76164L14.4688 9.46875L15.1759 10.1759C15.1167 10.235 15.0442 10.2578 14.9844 10.2578C14.9245 10.2578 14.8521 10.235 14.7929 10.1759L15.5 9.46875ZM14.4688 9.46875L13.7585 8.76482L10.2897 12.2648L11 12.9688L11.7103 13.6727L15.179 10.1727L14.4688 9.46875ZM11 12.9688L11.7071 12.2616L10.2384 10.7929L9.53125 11.5L8.82414 12.2071L10.2929 13.6759L11 12.9688ZM9.53125 11.5L10.2384 10.7929C9.55719 10.1117 8.42362 10.0553 7.72546 10.831L8.46875 11.5L9.21204 12.169C9.16028 12.2265 9.07623 12.2656 8.98828 12.2656C8.90344 12.2656 8.84748 12.2304 8.82414 12.2071L9.53125 11.5ZM8.46875 11.5L7.79979 10.7567C7.04591 11.4352 7.04591 12.5961 7.79979 13.2745L8.46875 12.5312L9.13771 11.788C9.19301 11.8377 9.23438 11.9208 9.23438 12.0156C9.23438 12.1105 9.19301 12.1935 9.13771 12.2433L8.46875 11.5ZM8.46875 12.5312L7.76164 13.2384L9.76164 15.2384L10.4688 14.5312L11.1759 13.8241L9.17586 11.8241L8.46875 12.5312ZM10.4688 14.5312L9.72546 15.2002C10.4236 15.976 11.5572 15.9195 12.2384 15.2384L11.5312 14.5312L10.8241 13.8241C10.8475 13.8008 10.9034 13.7656 10.9883 13.7656C11.0762 13.7656 11.1603 13.8048 11.212 13.8623L10.4688 14.5312ZM11.5312 14.5312L12.2384 15.2384L16.2384 11.2384L15.5312 10.5312L14.8241 9.82414L10.8241 13.8241L11.5312 14.5312Z",
|
|
49
|
+
fill: "white",
|
|
50
|
+
mask: "url(#path-2-outside-1_3089_3799)"
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
exports.CorrectCheckIcon = CorrectCheckIcon;
|
|
55
|
+
//# sourceMappingURL=correct-check-icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bars/common/correct-check-icon.jsx"],"names":["CorrectCheckIcon","dashColor"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,MAAGC,SAAH,QAAGA,SAAH;AAAA,sBAC9B;AAAK,IAAA,KAAK,EAAC,IAAX;AAAgB,IAAA,MAAM,EAAC,IAAvB;AAA4B,IAAA,OAAO,EAAC,WAApC;AAAgD,IAAA,IAAI,EAAC,MAArD;AAA4D,IAAA,KAAK,EAAC;AAAlE,kBACE;AAAQ,IAAA,EAAE,EAAC,IAAX;AAAgB,IAAA,EAAE,EAAC,IAAnB;AAAwB,IAAA,CAAC,EAAC,IAA1B;AAA+B,IAAA,IAAI,EAAC,OAApC;AAA4C,IAAA,MAAM,EAAEA,SAAS,IAAI,SAAjE;AAA4E,IAAA,WAAW,EAAC,GAAxF;AAA4F,IAAA,eAAe,EAAC;AAA5G,IADF,eAEE;AAAM,IAAA,EAAE,EAAC,4BAAT;AAAsC,IAAA,SAAS,EAAC,gBAAhD;AAAiE,IAAA,CAAC,EAAC,GAAnE;AAAuE,IAAA,CAAC,EAAC,GAAzE;AAA6E,IAAA,KAAK,EAAC,IAAnF;AAAwF,IAAA,MAAM,EAAC,IAA/F;AAAoG,IAAA,IAAI,EAAC;AAAzG,kBACE;AAAM,IAAA,IAAI,EAAC,OAAX;AAAmB,IAAA,CAAC,EAAC,GAArB;AAAyB,IAAA,CAAC,EAAC,GAA3B;AAA+B,IAAA,KAAK,EAAC,IAArC;AAA0C,IAAA,MAAM,EAAC;AAAjD,IADF,eAEE;AAAM,IAAA,CAAC,EAAC;AAAR,IAFF,CAFF,eAME;AACE,IAAA,CAAC,EAAC,qfADJ;AAEE,IAAA,IAAI,EAAC;AAFP,IANF,eAUE;AACE,IAAA,CAAC,EAAC,2+FADJ;AAEE,IAAA,IAAI,EAAC,OAFP;AAGE,IAAA,IAAI,EAAC;AAHP,IAVF,CAD8B;AAAA,CAAzB","sourcesContent":["import React from 'react';\n\nexport const CorrectCheckIcon = ({ dashColor }) => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"11\" fill=\"white\" stroke={dashColor || '#7E8494'} strokeWidth=\"2\" strokeDasharray=\"5 5\" />\n <mask id=\"path-2-outside-1_3089_3799\" maskUnits=\"userSpaceOnUse\" x=\"2\" y=\"3\" width=\"19\" height=\"18\" fill=\"black\">\n <rect fill=\"white\" x=\"2\" y=\"3\" width=\"19\" height=\"18\" />\n <path d=\"M12 20C9.125 20 6.5 18.5 5.0625 16C3.625 13.5312 3.625 10.5 5.0625 8C6.5 5.53125 9.125 4 12 4C14.8438 4 17.4688 5.53125 18.9062 8C20.3438 10.5 20.3438 13.5312 18.9062 16C17.4688 18.5 14.8438 20 12 20ZM15.5312 10.5312H15.5C15.8125 10.25 15.8125 9.78125 15.5 9.46875C15.2188 9.1875 14.75 9.1875 14.4688 9.46875L11 12.9688L9.53125 11.5C9.21875 11.1875 8.75 11.1875 8.46875 11.5C8.15625 11.7812 8.15625 12.25 8.46875 12.5312L10.4688 14.5312C10.75 14.8438 11.2188 14.8438 11.5312 14.5312L15.5312 10.5312Z\" />\n </mask>\n <path\n d=\"M12 20C9.125 20 6.5 18.5 5.0625 16C3.625 13.5312 3.625 10.5 5.0625 8C6.5 5.53125 9.125 4 12 4C14.8438 4 17.4688 5.53125 18.9062 8C20.3438 10.5 20.3438 13.5312 18.9062 16C17.4688 18.5 14.8438 20 12 20ZM15.5312 10.5312H15.5C15.8125 10.25 15.8125 9.78125 15.5 9.46875C15.2188 9.1875 14.75 9.1875 14.4688 9.46875L11 12.9688L9.53125 11.5C9.21875 11.1875 8.75 11.1875 8.46875 11.5C8.15625 11.7812 8.15625 12.25 8.46875 12.5312L10.4688 14.5312C10.75 14.8438 11.2188 14.8438 11.5312 14.5312L15.5312 10.5312Z\"\n fill=\"#0EA449\"\n />\n <path\n d=\"M5.0625 16L5.92942 15.5015L5.92668 15.4968L5.0625 16ZM5.0625 8L4.19831 7.4968L4.19559 7.50153L5.0625 8ZM18.9062 8L19.7732 7.50152L19.7704 7.49681L18.9062 8ZM18.9062 16L18.0421 15.4968L18.0393 15.5015L18.9062 16ZM15.5312 10.5312L16.2384 11.2384L17.9455 9.53125H15.5312V10.5312ZM15.5 10.5312L14.831 9.78796L12.894 11.5312H15.5V10.5312ZM14.4688 9.46875L13.7616 8.76164L13.7585 8.76482L14.4688 9.46875ZM11 12.9688L10.2929 13.6759L11.0032 14.3861L11.7103 13.6727L11 12.9688ZM8.46875 11.5L9.13771 12.2433L9.17684 12.2081L9.21204 12.169L8.46875 11.5ZM8.46875 12.5312L9.17586 11.8241L9.15726 11.8055L9.13771 11.788L8.46875 12.5312ZM10.4688 14.5312L11.212 13.8623L11.1945 13.8427L11.1759 13.8241L10.4688 14.5312ZM12 20V19C9.479 19 7.18657 17.6879 5.92941 15.5015L5.0625 16L4.19559 16.4985C5.81343 19.3121 8.771 21 12 21V20ZM5.0625 16L5.92668 15.4968C4.6714 13.341 4.66824 10.6918 5.92941 8.49847L5.0625 8L4.19559 7.50153C2.58176 10.3082 2.5786 13.7215 4.19832 16.5032L5.0625 16ZM5.0625 8L5.92668 8.50319C7.18712 6.33851 9.48502 5 12 5V4V3C8.76498 3 5.81288 4.72399 4.19832 7.49681L5.0625 8ZM12 4V5C14.4816 5 16.7805 6.33661 18.0421 8.50319L18.9062 8L19.7704 7.49681C18.157 4.72589 15.2059 3 12 3V4ZM18.9062 8L18.0393 8.49847C19.3005 10.6918 19.2973 13.341 18.0421 15.4968L18.9062 16L19.7704 16.5032C21.3902 13.7215 21.387 10.3082 19.7732 7.50153L18.9062 8ZM18.9062 16L18.0393 15.5015C16.7811 17.6898 14.4876 19 12 19V20V21C15.1999 21 18.1564 19.3102 19.7732 16.4985L18.9062 16ZM15.5312 10.5312V9.53125H15.5V10.5312V11.5312H15.5312V10.5312ZM15.5 10.5312L16.169 11.2745C16.9447 10.5764 16.8883 9.44281 16.2071 8.76164L15.5 9.46875L14.7929 10.1759C14.7696 10.1525 14.7344 10.0966 14.7344 10.0117C14.7344 9.92377 14.7735 9.83972 14.831 9.78796L15.5 10.5312ZM15.5 9.46875L16.2071 8.76164C15.5353 8.08987 14.4334 8.08987 13.7616 8.76164L14.4688 9.46875L15.1759 10.1759C15.1167 10.235 15.0442 10.2578 14.9844 10.2578C14.9245 10.2578 14.8521 10.235 14.7929 10.1759L15.5 9.46875ZM14.4688 9.46875L13.7585 8.76482L10.2897 12.2648L11 12.9688L11.7103 13.6727L15.179 10.1727L14.4688 9.46875ZM11 12.9688L11.7071 12.2616L10.2384 10.7929L9.53125 11.5L8.82414 12.2071L10.2929 13.6759L11 12.9688ZM9.53125 11.5L10.2384 10.7929C9.55719 10.1117 8.42362 10.0553 7.72546 10.831L8.46875 11.5L9.21204 12.169C9.16028 12.2265 9.07623 12.2656 8.98828 12.2656C8.90344 12.2656 8.84748 12.2304 8.82414 12.2071L9.53125 11.5ZM8.46875 11.5L7.79979 10.7567C7.04591 11.4352 7.04591 12.5961 7.79979 13.2745L8.46875 12.5312L9.13771 11.788C9.19301 11.8377 9.23438 11.9208 9.23438 12.0156C9.23438 12.1105 9.19301 12.1935 9.13771 12.2433L8.46875 11.5ZM8.46875 12.5312L7.76164 13.2384L9.76164 15.2384L10.4688 14.5312L11.1759 13.8241L9.17586 11.8241L8.46875 12.5312ZM10.4688 14.5312L9.72546 15.2002C10.4236 15.976 11.5572 15.9195 12.2384 15.2384L11.5312 14.5312L10.8241 13.8241C10.8475 13.8008 10.9034 13.7656 10.9883 13.7656C11.0762 13.7656 11.1603 13.8048 11.212 13.8623L10.4688 14.5312ZM11.5312 14.5312L12.2384 15.2384L16.2384 11.2384L15.5312 10.5312L14.8241 9.82414L10.8241 13.8241L11.5312 14.5312Z\"\n fill=\"white\"\n mask=\"url(#path-2-outside-1_3089_3799)\"\n />\n </svg>\n);\n"],"file":"correct-check-icon.js"}
|
package/lib/chart.js
CHANGED
|
@@ -236,7 +236,8 @@ var Chart = /*#__PURE__*/function (_React$Component) {
|
|
|
236
236
|
_this$props5$mathMlOp = _this$props5.mathMlOptions,
|
|
237
237
|
mathMlOptions = _this$props5$mathMlOp === void 0 ? {} : _this$props5$mathMlOp,
|
|
238
238
|
language = _this$props5.language,
|
|
239
|
-
labelsCharactersLimit = _this$props5.labelsCharactersLimit
|
|
239
|
+
labelsCharactersLimit = _this$props5.labelsCharactersLimit,
|
|
240
|
+
correctData = _this$props5.correctData;
|
|
240
241
|
var chartType = this.props.chartType;
|
|
241
242
|
var dialog = this.state.dialog;
|
|
242
243
|
var defineChart = this.props.defineChart || false;
|
|
@@ -271,7 +272,7 @@ var Chart = /*#__PURE__*/function (_React$Component) {
|
|
|
271
272
|
x: -10,
|
|
272
273
|
y: -75,
|
|
273
274
|
width: width + 20,
|
|
274
|
-
height: height +
|
|
275
|
+
height: height + 130
|
|
275
276
|
};
|
|
276
277
|
var scale = common.graphProps.scale;
|
|
277
278
|
var xBand = (0, _utils.dataToXBand)(scale.x, categories, width, chartType);
|
|
@@ -328,17 +329,18 @@ var Chart = /*#__PURE__*/function (_React$Component) {
|
|
|
328
329
|
changeInteractiveEnabled: changeInteractiveEnabled,
|
|
329
330
|
changeEditableEnabled: changeEditableEnabled,
|
|
330
331
|
top: top,
|
|
331
|
-
error: error
|
|
332
|
+
error: error,
|
|
333
|
+
showCorrectness: chartType === 'linePlot' || chartType === 'dotPlot'
|
|
332
334
|
})), addCategoryEnabled ? /*#__PURE__*/_react["default"].createElement("foreignObject", {
|
|
333
|
-
x: width
|
|
334
|
-
y: height -
|
|
335
|
-
width:
|
|
336
|
-
height:
|
|
335
|
+
x: width,
|
|
336
|
+
y: height - 16,
|
|
337
|
+
width: width,
|
|
338
|
+
height: height
|
|
337
339
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
338
340
|
xmlns: "http://www.w3.org/1999/xhtml",
|
|
339
341
|
style: {
|
|
340
342
|
display: 'flex',
|
|
341
|
-
justifyContent: '
|
|
343
|
+
justifyContent: 'flex-start'
|
|
342
344
|
}
|
|
343
345
|
}, /*#__PURE__*/_react["default"].createElement(_actionsButton["default"], {
|
|
344
346
|
categories: categories,
|
|
@@ -357,7 +359,8 @@ var Chart = /*#__PURE__*/function (_React$Component) {
|
|
|
357
359
|
height: rootCommon.graphProps.size.height,
|
|
358
360
|
defineChart: defineChart,
|
|
359
361
|
onChange: this.changeData,
|
|
360
|
-
onChangeCategory: this.changeCategory
|
|
362
|
+
onChangeCategory: this.changeCategory,
|
|
363
|
+
correctData: correctData
|
|
361
364
|
})))), /*#__PURE__*/_react["default"].createElement(_configUi.AlertDialog, {
|
|
362
365
|
open: dialog.open,
|
|
363
366
|
title: dialog.title,
|
|
@@ -416,7 +419,11 @@ exports.Chart = Chart;
|
|
|
416
419
|
changeEditableEnabled: _propTypes["default"].bool,
|
|
417
420
|
language: _propTypes["default"].string,
|
|
418
421
|
mathMlOptions: _propTypes["default"].object,
|
|
419
|
-
labelsCharactersLimit: _propTypes["default"].number
|
|
422
|
+
labelsCharactersLimit: _propTypes["default"].number,
|
|
423
|
+
correctData: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
424
|
+
label: _propTypes["default"].string,
|
|
425
|
+
value: _propTypes["default"].number
|
|
426
|
+
}))
|
|
420
427
|
});
|
|
421
428
|
(0, _defineProperty2["default"])(Chart, "defaultProps", {
|
|
422
429
|
size: {
|
package/lib/chart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart.jsx"],"names":["translator","Translator","log","Chart","props","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","autoFocus","open","callback","setState","dialog","state","chartType","ChartComponent","chart","find","type","Component","data","onDataChange","index","newCategory","integerIndex","parseInt","categoryDefaultLabel","defineChart","categoryDefaults","language","length","title","t","lng","text","count","onConfirm","handleAlertDialog","inDefineChart","label","value","deletable","editable","interactive","filter","_","i","map","d","actionsAnchorEl","maskUid","generateMaskId","Math","random","toFixed","classes","className","domain","range","chartingOptions","size","onChangeTitle","onChangeLabels","labelsPlaceholders","titlePlaceholder","addCategoryEnabled","changeInteractiveEnabled","changeEditableEnabled","showPixelGuides","error","mathMlOptions","labelsCharactersLimit","width","height","labels","left","bottom","getChart","categories","getFilteredCategories","correctValues","verticalLines","horizontalLines","leftAxis","common","graphProps","rootNode","maskSize","x","y","scale","xBand","bandWidth","bandwidth","barWidth","max","increaseHeight","top","rootCommon","chartBox","r","resetAutoFocus","changeData","changeCategory","display","justifyContent","addCategory","deleteCategory","onClose","React","PropTypes","object","isRequired","string","shape","number","min","axisLabel","arrayOf","step","labelStep","array","func","any","bool","theme","styles","graphBox","transform","svg","overflow","withTheme"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport { Root, createGraphProps } from '@pie-lib/plot';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport ChartGrid from './grid';\nimport ChartAxes from './axes';\nimport { dataToXBand, getDomainAndRangeByChartType, getGridLinesAndAxisByChartType, getTopPadding } from './utils';\nimport chartTypes from './chart-types';\nimport ActionsButton from './actions-button';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst log = debug('pie-lib:charts:chart');\n\nexport class Chart extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false,\n },\n actionsAnchorEl: null,\n };\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n chartType: PropTypes.string.isRequired,\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number,\n }),\n domain: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n axisLabel: PropTypes.string,\n }),\n data: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.number })),\n range: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n labelStep: PropTypes.number,\n axisLabel: PropTypes.string,\n }),\n charts: PropTypes.array,\n labelsPlaceholders: PropTypes.object,\n title: PropTypes.string,\n titlePlaceholder: PropTypes.string,\n onDataChange: PropTypes.func,\n onChangeLabels: PropTypes.func,\n onChangeTitle: PropTypes.func,\n error: PropTypes.any,\n addCategoryEnabled: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n categoryDefaultLabel: PropTypes.string,\n categoryDefaults: PropTypes.object,\n defineChart: PropTypes.bool,\n theme: PropTypes.object,\n chartingOptions: PropTypes.object,\n changeInteractiveEnabled: PropTypes.bool,\n changeEditableEnabled: PropTypes.bool,\n language: PropTypes.string,\n mathMlOptions: PropTypes.object,\n labelsCharactersLimit: PropTypes.number,\n };\n\n static defaultProps = {\n size: {\n width: 480,\n height: 480,\n },\n };\n\n state = {\n charts: [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n ],\n autoFocus: false,\n };\n\n generateMaskId() {\n return 'chart-' + (Math.random() * 10000).toFixed();\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n getChart = () => {\n const charts = this.props.charts || this.state.charts;\n let { chartType } = this.props;\n let ChartComponent = null;\n let chart = null;\n\n if (chartType) {\n chart = charts && charts.find((chart) => chart.type === chartType);\n ChartComponent = chart && chart.Component;\n } else {\n chart = charts && charts[0];\n ChartComponent = chart && chart.Component;\n chartType = chart && chart.type;\n }\n\n return {\n type: chartType,\n ChartComponent,\n };\n };\n\n changeData = (data) => {\n const { onDataChange } = this.props;\n\n onDataChange(data);\n };\n\n changeCategory = (index, newCategory) => {\n const integerIndex = parseInt(index, 10);\n\n if (integerIndex >= 0) {\n const { data, onDataChange } = this.props;\n data[integerIndex] = {\n ...data[integerIndex],\n ...newCategory,\n };\n\n onDataChange(data);\n }\n };\n\n addCategory = () => {\n const { onDataChange, data, categoryDefaultLabel, defineChart, categoryDefaults, language } = this.props;\n\n if ((data || []).length > 19) {\n this.setState({\n dialog: {\n open: true,\n title: translator.t('common:warning', { lng: language }),\n text: translator.t('charting.reachedLimit_other', { count: 20, lng: language }),\n onConfirm: () => this.handleAlertDialog(false),\n },\n });\n } else {\n this.setState({ autoFocus: true });\n onDataChange([\n ...data,\n {\n inDefineChart: defineChart,\n label: categoryDefaultLabel || translator.t('charting.newLabel', { lng: language }),\n value: 0,\n deletable: true,\n editable: categoryDefaults ? categoryDefaults?.editable : true,\n interactive: categoryDefaults ? categoryDefaults?.interactive : true,\n },\n ]);\n }\n };\n\n deleteCategory = (index) => {\n const { data, onDataChange } = this.props;\n\n if (typeof index !== 'number' || index < 0) {\n return;\n }\n\n if (data && data.length > 0) {\n onDataChange(data.filter((_, i) => i !== index));\n }\n };\n\n getFilteredCategories = () => {\n const { data, defineChart } = this.props;\n\n return data\n ? data.map((d) => ({\n ...d,\n deletable: defineChart || d.deletable,\n }))\n : [];\n };\n\n resetAutoFocus = () => {\n this.setState({ autoFocus: false });\n };\n\n render() {\n const {\n classes,\n className,\n domain = {},\n range = {},\n chartingOptions,\n size,\n title,\n onChangeTitle,\n onChangeLabels,\n labelsPlaceholders,\n titlePlaceholder,\n addCategoryEnabled,\n changeInteractiveEnabled,\n changeEditableEnabled,\n showPixelGuides,\n error,\n mathMlOptions = {},\n language,\n labelsCharactersLimit,\n } = this.props;\n let { chartType } = this.props;\n\n const { dialog } = this.state;\n const defineChart = this.props.defineChart || false;\n\n const { width, height } = size || {};\n const labels = { left: range?.label || '', bottom: domain?.label || '' };\n\n const { ChartComponent } = this.getChart();\n const categories = this.getFilteredCategories();\n\n const correctValues = getDomainAndRangeByChartType(domain, range, chartType);\n\n const { verticalLines, horizontalLines, leftAxis } = getGridLinesAndAxisByChartType(correctValues.range, chartType);\n const common = {\n graphProps: createGraphProps(correctValues.domain, correctValues.range, size, () => this.rootNode),\n };\n\n log('[render] common:', common);\n\n const maskSize = { x: -10, y: -75, width: width + 20, height: height + 80 };\n const { scale } = common.graphProps;\n const xBand = dataToXBand(scale.x, categories, width, chartType);\n\n if (!ChartComponent) {\n return null;\n }\n\n const bandWidth = xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;\n const increaseHeight = defineChart ? 160 : 60;\n\n // if there are many categories, we have to rotate their names in order to fit\n // and we have to add extra value on top of some items\n const top = getTopPadding(barWidth);\n const rootCommon = cloneDeep(common);\n rootCommon.graphProps.size.height += top + increaseHeight;\n\n return (\n <div className={classNames(classes.chart, classes.chartBox, className)}>\n <Root\n title={title}\n onChangeTitle={onChangeTitle}\n disabledTitle={!defineChart}\n showTitle={true}\n showLabels={true}\n labels={labels}\n onChangeLabels={onChangeLabels}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder}\n defineChart={defineChart}\n disabledLabels={!defineChart}\n isChart={true}\n showPixelGuides={showPixelGuides}\n rootRef={(r) => (this.rootNode = r)}\n mathMlOptions={mathMlOptions}\n labelsCharactersLimit={labelsCharactersLimit}\n {...rootCommon}\n >\n <ChartGrid {...common} xBand={xBand} rowTickValues={horizontalLines} columnTickValues={verticalLines} />\n <ChartAxes\n autoFocus={this.state.autoFocus}\n onAutoFocusUsed={this.resetAutoFocus}\n {...common}\n defineChart={defineChart}\n categories={categories}\n xBand={xBand}\n leftAxis={leftAxis}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n chartingOptions={chartingOptions}\n changeInteractiveEnabled={changeInteractiveEnabled}\n changeEditableEnabled={changeEditableEnabled}\n top={top}\n error={error}\n />\n {addCategoryEnabled ? (\n <foreignObject x={width - 8} y={height - 8} width={100} height={40}>\n <div xmlns=\"http://www.w3.org/1999/xhtml\" style={{ display: 'flex', justifyContent: 'center' }}>\n <ActionsButton\n categories={categories}\n addCategory={this.addCategory}\n deleteCategory={this.deleteCategory}\n language={language}\n />\n </div>\n </foreignObject>\n ) : null}\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" />\n </mask>\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n <ChartComponent\n {...common}\n data={categories}\n height={rootCommon.graphProps.size.height}\n defineChart={defineChart}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n />\n </g>\n </Root>\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphBox: {\n transform: 'translate(60px, 35px)',\n },\n svg: {\n overflow: 'visible',\n },\n\n chartBox: {\n width: 'min-content',\n },\n});\n\nexport default withStyles(styles, { withTheme: true })(Chart);\n"],"file":"chart.js"}
|
|
1
|
+
{"version":3,"sources":["../src/chart.jsx"],"names":["translator","Translator","log","Chart","props","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","autoFocus","open","callback","setState","dialog","state","chartType","ChartComponent","chart","find","type","Component","data","onDataChange","index","newCategory","integerIndex","parseInt","categoryDefaultLabel","defineChart","categoryDefaults","language","length","title","t","lng","text","count","onConfirm","handleAlertDialog","inDefineChart","label","value","deletable","editable","interactive","filter","_","i","map","d","actionsAnchorEl","maskUid","generateMaskId","Math","random","toFixed","classes","className","domain","range","chartingOptions","size","onChangeTitle","onChangeLabels","labelsPlaceholders","titlePlaceholder","addCategoryEnabled","changeInteractiveEnabled","changeEditableEnabled","showPixelGuides","error","mathMlOptions","labelsCharactersLimit","correctData","width","height","labels","left","bottom","getChart","categories","getFilteredCategories","correctValues","verticalLines","horizontalLines","leftAxis","common","graphProps","rootNode","maskSize","x","y","scale","xBand","bandWidth","bandwidth","barWidth","max","increaseHeight","top","rootCommon","chartBox","r","resetAutoFocus","changeData","changeCategory","display","justifyContent","addCategory","deleteCategory","onClose","React","PropTypes","object","isRequired","string","shape","number","min","axisLabel","arrayOf","step","labelStep","array","func","any","bool","theme","styles","graphBox","transform","svg","overflow","withTheme"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAQA,UAAR,GAAuBC,sBAAvB,CAAQD,UAAR;AAEA,IAAME,GAAG,GAAG,uBAAM,sBAAN,CAAZ;;IAEaC,K;;;;;AACX,iBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,8FAqEX;AACNC,MAAAA,MAAM,EAAE,CACNC,uBAAWC,GAAX,EADM,EAEND,uBAAWE,SAAX,EAFM,EAGNF,uBAAWG,OAAX,EAHM,EAINH,uBAAWI,SAAX,EAJM,EAKNJ,uBAAWK,OAAX,EALM,EAMNL,uBAAWM,QAAX,EANM,CADF;AASNC,MAAAA,SAAS,EAAE;AATL,KArEW;AAAA,0GAqFC,UAACC,IAAD,EAAOC,QAAP;AAAA,aAClB,MAAKC,QAAL,CACE;AACEC,QAAAA,MAAM,EAAE;AAAEH,UAAAA,IAAI,EAAJA;AAAF;AADV,OADF,EAIEC,QAJF,CADkB;AAAA,KArFD;AAAA,iGA6FR,YAAM;AACf,UAAMV,MAAM,GAAG,MAAKD,KAAL,CAAWC,MAAX,IAAqB,MAAKa,KAAL,CAAWb,MAA/C;AACA,UAAMc,SAAN,GAAoB,MAAKf,KAAzB,CAAMe,SAAN;AACA,UAAIC,cAAc,GAAG,IAArB;AACA,UAAIC,KAAK,GAAG,IAAZ;;AAEA,UAAIF,SAAJ,EAAe;AACbE,QAAAA,KAAK,GAAGhB,MAAM,IAAIA,MAAM,CAACiB,IAAP,CAAY,UAACD,KAAD;AAAA,iBAAWA,KAAK,CAACE,IAAN,KAAeJ,SAA1B;AAAA,SAAZ,CAAlB;AACAC,QAAAA,cAAc,GAAGC,KAAK,IAAIA,KAAK,CAACG,SAAhC;AACD,OAHD,MAGO;AACLH,QAAAA,KAAK,GAAGhB,MAAM,IAAIA,MAAM,CAAC,CAAD,CAAxB;AACAe,QAAAA,cAAc,GAAGC,KAAK,IAAIA,KAAK,CAACG,SAAhC;AACAL,QAAAA,SAAS,GAAGE,KAAK,IAAIA,KAAK,CAACE,IAA3B;AACD;;AAED,aAAO;AACLA,QAAAA,IAAI,EAAEJ,SADD;AAELC,QAAAA,cAAc,EAAdA;AAFK,OAAP;AAID,KAhHkB;AAAA,mGAkHN,UAACK,IAAD,EAAU;AACrB,UAAQC,YAAR,GAAyB,MAAKtB,KAA9B,CAAQsB,YAAR;AAEAA,MAAAA,YAAY,CAACD,IAAD,CAAZ;AACD,KAtHkB;AAAA,uGAwHF,UAACE,KAAD,EAAQC,WAAR,EAAwB;AACvC,UAAMC,YAAY,GAAGC,QAAQ,CAACH,KAAD,EAAQ,EAAR,CAA7B;;AAEA,UAAIE,YAAY,IAAI,CAApB,EAAuB;AACrB,0BAA+B,MAAKzB,KAApC;AAAA,YAAQqB,IAAR,eAAQA,IAAR;AAAA,YAAcC,YAAd,eAAcA,YAAd;AACAD,QAAAA,IAAI,CAACI,YAAD,CAAJ,mCACKJ,IAAI,CAACI,YAAD,CADT,GAEKD,WAFL;AAKAF,QAAAA,YAAY,CAACD,IAAD,CAAZ;AACD;AACF,KApIkB;AAAA,oGAsIL,YAAM;AAClB,yBAA8F,MAAKrB,KAAnG;AAAA,UAAQsB,YAAR,gBAAQA,YAAR;AAAA,UAAsBD,IAAtB,gBAAsBA,IAAtB;AAAA,UAA4BM,oBAA5B,gBAA4BA,oBAA5B;AAAA,UAAkDC,WAAlD,gBAAkDA,WAAlD;AAAA,UAA+DC,gBAA/D,gBAA+DA,gBAA/D;AAAA,UAAiFC,QAAjF,gBAAiFA,QAAjF;;AAEA,UAAI,CAACT,IAAI,IAAI,EAAT,EAAaU,MAAb,GAAsB,EAA1B,EAA8B;AAC5B,cAAKnB,QAAL,CAAc;AACZC,UAAAA,MAAM,EAAE;AACNH,YAAAA,IAAI,EAAE,IADA;AAENsB,YAAAA,KAAK,EAAEpC,UAAU,CAACqC,CAAX,CAAa,gBAAb,EAA+B;AAAEC,cAAAA,GAAG,EAAEJ;AAAP,aAA/B,CAFD;AAGNK,YAAAA,IAAI,EAAEvC,UAAU,CAACqC,CAAX,CAAa,6BAAb,EAA4C;AAAEG,cAAAA,KAAK,EAAE,EAAT;AAAaF,cAAAA,GAAG,EAAEJ;AAAlB,aAA5C,CAHA;AAINO,YAAAA,SAAS,EAAE;AAAA,qBAAM,MAAKC,iBAAL,CAAuB,KAAvB,CAAN;AAAA;AAJL;AADI,SAAd;AAQD,OATD,MASO;AACL,cAAK1B,QAAL,CAAc;AAAEH,UAAAA,SAAS,EAAE;AAAb,SAAd;;AACAa,QAAAA,YAAY,+CACPD,IADO,IAEV;AACEkB,UAAAA,aAAa,EAAEX,WADjB;AAEEY,UAAAA,KAAK,EAAEb,oBAAoB,IAAI/B,UAAU,CAACqC,CAAX,CAAa,mBAAb,EAAkC;AAAEC,YAAAA,GAAG,EAAEJ;AAAP,WAAlC,CAFjC;AAGEW,UAAAA,KAAK,EAAE,CAHT;AAIEC,UAAAA,SAAS,EAAE,IAJb;AAKEC,UAAAA,QAAQ,EAAEd,gBAAgB,GAAGA,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEc,QAArB,GAAgC,IAL5D;AAMEC,UAAAA,WAAW,EAAEf,gBAAgB,GAAGA,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEe,WAArB,GAAmC;AANlE,SAFU,GAAZ;AAWD;AACF,KAhKkB;AAAA,uGAkKF,UAACrB,KAAD,EAAW;AAC1B,yBAA+B,MAAKvB,KAApC;AAAA,UAAQqB,IAAR,gBAAQA,IAAR;AAAA,UAAcC,YAAd,gBAAcA,YAAd;;AAEA,UAAI,OAAOC,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,GAAG,CAAzC,EAA4C;AAC1C;AACD;;AAED,UAAIF,IAAI,IAAIA,IAAI,CAACU,MAAL,GAAc,CAA1B,EAA6B;AAC3BT,QAAAA,YAAY,CAACD,IAAI,CAACwB,MAAL,CAAY,UAACC,CAAD,EAAIC,CAAJ;AAAA,iBAAUA,CAAC,KAAKxB,KAAhB;AAAA,SAAZ,CAAD,CAAZ;AACD;AACF,KA5KkB;AAAA,8GA8KK,YAAM;AAC5B,yBAA8B,MAAKvB,KAAnC;AAAA,UAAQqB,IAAR,gBAAQA,IAAR;AAAA,UAAcO,WAAd,gBAAcA,WAAd;AAEA,aAAOP,IAAI,GACPA,IAAI,CAAC2B,GAAL,CAAS,UAACC,CAAD;AAAA,+CACJA,CADI;AAEPP,UAAAA,SAAS,EAAEd,WAAW,IAAIqB,CAAC,CAACP;AAFrB;AAAA,OAAT,CADO,GAKP,EALJ;AAMD,KAvLkB;AAAA,uGAyLF,YAAM;AACrB,YAAK9B,QAAL,CAAc;AAAEH,QAAAA,SAAS,EAAE;AAAb,OAAd;AACD,KA3LkB;AAEjB,UAAKK,KAAL,GAAa;AACXD,MAAAA,MAAM,EAAE;AACNH,QAAAA,IAAI,EAAE;AADA,OADG;AAIXwC,MAAAA,eAAe,EAAE;AAJN,KAAb;AAMA,UAAKC,OAAL,GAAe,MAAKC,cAAL,EAAf;AARiB;AASlB;;;;WAwED,0BAAiB;AACf,aAAO,WAAW,CAACC,IAAI,CAACC,MAAL,KAAgB,KAAjB,EAAwBC,OAAxB,EAAlB;AACD;;;WA0GD,kBAAS;AAAA;;AACP,yBAqBI,KAAKvD,KArBT;AAAA,UACEwD,OADF,gBACEA,OADF;AAAA,UAEEC,SAFF,gBAEEA,SAFF;AAAA,6CAGEC,MAHF;AAAA,UAGEA,MAHF,oCAGW,EAHX;AAAA,4CAIEC,KAJF;AAAA,UAIEA,KAJF,mCAIU,EAJV;AAAA,UAKEC,eALF,gBAKEA,eALF;AAAA,UAMEC,IANF,gBAMEA,IANF;AAAA,UAOE7B,KAPF,gBAOEA,KAPF;AAAA,UAQE8B,aARF,gBAQEA,aARF;AAAA,UASEC,cATF,gBASEA,cATF;AAAA,UAUEC,kBAVF,gBAUEA,kBAVF;AAAA,UAWEC,gBAXF,gBAWEA,gBAXF;AAAA,UAYEC,kBAZF,gBAYEA,kBAZF;AAAA,UAaEC,wBAbF,gBAaEA,wBAbF;AAAA,UAcEC,qBAdF,gBAcEA,qBAdF;AAAA,UAeEC,eAfF,gBAeEA,eAfF;AAAA,UAgBEC,KAhBF,gBAgBEA,KAhBF;AAAA,+CAiBEC,aAjBF;AAAA,UAiBEA,aAjBF,sCAiBkB,EAjBlB;AAAA,UAkBEzC,QAlBF,gBAkBEA,QAlBF;AAAA,UAmBE0C,qBAnBF,gBAmBEA,qBAnBF;AAAA,UAoBEC,WApBF,gBAoBEA,WApBF;AAsBA,UAAM1D,SAAN,GAAoB,KAAKf,KAAzB,CAAMe,SAAN;AAEA,UAAQF,MAAR,GAAmB,KAAKC,KAAxB,CAAQD,MAAR;AACA,UAAMe,WAAW,GAAG,KAAK5B,KAAL,CAAW4B,WAAX,IAA0B,KAA9C;;AAEA,iBAA0BiC,IAAI,IAAI,EAAlC;AAAA,UAAQa,KAAR,QAAQA,KAAR;AAAA,UAAeC,MAAf,QAAeA,MAAf;;AACA,UAAMC,MAAM,GAAG;AAAEC,QAAAA,IAAI,EAAE,CAAAlB,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEnB,KAAP,KAAgB,EAAxB;AAA4BsC,QAAAA,MAAM,EAAE,CAAApB,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAElB,KAAR,KAAiB;AAArD,OAAf;;AAEA,2BAA2B,KAAKuC,QAAL,EAA3B;AAAA,UAAQ/D,cAAR,kBAAQA,cAAR;;AACA,UAAMgE,UAAU,GAAG,KAAKC,qBAAL,EAAnB;AAEA,UAAMC,aAAa,GAAG,yCAA6BxB,MAA7B,EAAqCC,KAArC,EAA4C5C,SAA5C,CAAtB;;AAEA,kCAAqD,2CAA+BmE,aAAa,CAACvB,KAA7C,EAAoD5C,SAApD,CAArD;AAAA,UAAQoE,aAAR,yBAAQA,aAAR;AAAA,UAAuBC,eAAvB,yBAAuBA,eAAvB;AAAA,UAAwCC,QAAxC,yBAAwCA,QAAxC;;AACA,UAAMC,MAAM,GAAG;AACbC,QAAAA,UAAU,EAAE,4BAAiBL,aAAa,CAACxB,MAA/B,EAAuCwB,aAAa,CAACvB,KAArD,EAA4DE,IAA5D,EAAkE;AAAA,iBAAM,MAAI,CAAC2B,QAAX;AAAA,SAAlE;AADC,OAAf;AAIA1F,MAAAA,GAAG,CAAC,kBAAD,EAAqBwF,MAArB,CAAH;AAEA,UAAMG,QAAQ,GAAG;AAAEC,QAAAA,CAAC,EAAE,CAAC,EAAN;AAAUC,QAAAA,CAAC,EAAE,CAAC,EAAd;AAAkBjB,QAAAA,KAAK,EAAEA,KAAK,GAAG,EAAjC;AAAqCC,QAAAA,MAAM,EAAEA,MAAM,GAAG;AAAtD,OAAjB;AACA,UAAQiB,KAAR,GAAkBN,MAAM,CAACC,UAAzB,CAAQK,KAAR;AACA,UAAMC,KAAK,GAAG,wBAAYD,KAAK,CAACF,CAAlB,EAAqBV,UAArB,EAAiCN,KAAjC,EAAwC3D,SAAxC,CAAd;;AAEA,UAAI,CAACC,cAAL,EAAqB;AACnB,eAAO,IAAP;AACD;;AAED,UAAM8E,SAAS,GAAGD,KAAK,CAACE,SAAN,EAAlB,CAnDO,CAoDP;;AACA,UAAMC,QAAQ,GAAGF,SAAS,IAAIF,KAAK,CAACF,CAAN,CAAQR,aAAa,CAACxB,MAAd,CAAqBuC,GAA7B,IAAoCjB,UAAU,CAACjD,MAA7E;AACA,UAAMmE,cAAc,GAAGtE,WAAW,GAAG,GAAH,GAAS,EAA3C,CAtDO,CAwDP;AACA;;AACA,UAAMuE,GAAG,GAAG,0BAAcH,QAAd,CAAZ;AACA,UAAMI,UAAU,GAAG,2BAAUd,MAAV,CAAnB;AACAc,MAAAA,UAAU,CAACb,UAAX,CAAsB1B,IAAtB,CAA2Bc,MAA3B,IAAqCwB,GAAG,GAAGD,cAA3C;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAW1C,OAAO,CAACvC,KAAnB,EAA0BuC,OAAO,CAAC6C,QAAlC,EAA4C5C,SAA5C;AAAhB,sBACE,gCAAC,UAAD;AACE,QAAA,KAAK,EAAEzB,KADT;AAEE,QAAA,aAAa,EAAE8B,aAFjB;AAGE,QAAA,aAAa,EAAE,CAAClC,WAHlB;AAIE,QAAA,SAAS,EAAE,IAJb;AAKE,QAAA,UAAU,EAAE,IALd;AAME,QAAA,MAAM,EAAEgD,MANV;AAOE,QAAA,cAAc,EAAEb,cAPlB;AAQE,QAAA,kBAAkB,EAAEC,kBARtB;AASE,QAAA,gBAAgB,EAAEC,gBATpB;AAUE,QAAA,WAAW,EAAErC,WAVf;AAWE,QAAA,cAAc,EAAE,CAACA,WAXnB;AAYE,QAAA,OAAO,EAAE,IAZX;AAaE,QAAA,eAAe,EAAEyC,eAbnB;AAcE,QAAA,OAAO,EAAE,iBAACiC,CAAD;AAAA,iBAAQ,MAAI,CAACd,QAAL,GAAgBc,CAAxB;AAAA,SAdX;AAeE,QAAA,aAAa,EAAE/B,aAfjB;AAgBE,QAAA,qBAAqB,EAAEC;AAhBzB,SAiBM4B,UAjBN,gBAmBE,gCAAC,gBAAD,gCAAed,MAAf;AAAuB,QAAA,KAAK,EAAEO,KAA9B;AAAqC,QAAA,aAAa,EAAET,eAApD;AAAqE,QAAA,gBAAgB,EAAED;AAAvF,SAnBF,eAoBE,gCAAC,gBAAD;AACE,QAAA,SAAS,EAAE,KAAKrE,KAAL,CAAWL,SADxB;AAEE,QAAA,eAAe,EAAE,KAAK8F;AAFxB,SAGMjB,MAHN;AAIE,QAAA,WAAW,EAAE1D,WAJf;AAKE,QAAA,UAAU,EAAEoD,UALd;AAME,QAAA,KAAK,EAAEa,KANT;AAOE,QAAA,QAAQ,EAAER,QAPZ;AAQE,QAAA,QAAQ,EAAE,KAAKmB,UARjB;AASE,QAAA,gBAAgB,EAAE,KAAKC,cATzB;AAUE,QAAA,eAAe,EAAE7C,eAVnB;AAWE,QAAA,wBAAwB,EAAEO,wBAX5B;AAYE,QAAA,qBAAqB,EAAEC,qBAZzB;AAaE,QAAA,GAAG,EAAE+B,GAbP;AAcE,QAAA,KAAK,EAAE7B,KAdT;AAeE,QAAA,eAAe,EAAEvD,SAAS,KAAK,UAAd,IAA4BA,SAAS,KAAK;AAf7D,SApBF,EAqCGmD,kBAAkB,gBACjB;AAAe,QAAA,CAAC,EAAEQ,KAAlB;AAAyB,QAAA,CAAC,EAAEC,MAAM,GAAG,EAArC;AAAyC,QAAA,KAAK,EAAED,KAAhD;AAAuD,QAAA,MAAM,EAAEC;AAA/D,sBACE;AAAK,QAAA,KAAK,EAAC,8BAAX;AAA0C,QAAA,KAAK,EAAE;AAAE+B,UAAAA,OAAO,EAAE,MAAX;AAAmBC,UAAAA,cAAc,EAAE;AAAnC;AAAjD,sBACE,gCAAC,yBAAD;AACE,QAAA,UAAU,EAAE3B,UADd;AAEE,QAAA,WAAW,EAAE,KAAK4B,WAFpB;AAGE,QAAA,cAAc,EAAE,KAAKC,cAHvB;AAIE,QAAA,QAAQ,EAAE/E;AAJZ,QADF,CADF,CADiB,GAWf,IAhDN,eAiDE;AAAM,QAAA,EAAE,YAAK,KAAKqB,OAAV;AAAR,sBACE,sEAAUsC,QAAV;AAAoB,QAAA,IAAI,EAAC;AAAzB,SADF,CAjDF,eAoDE;AAAG,QAAA,EAAE,EAAC,OAAN;AAAc,QAAA,IAAI,kBAAW,KAAKtC,OAAhB;AAAlB,sBACE,gCAAC,cAAD,gCACMmC,MADN;AAEE,QAAA,IAAI,EAAEN,UAFR;AAGE,QAAA,MAAM,EAAEoB,UAAU,CAACb,UAAX,CAAsB1B,IAAtB,CAA2Bc,MAHrC;AAIE,QAAA,WAAW,EAAE/C,WAJf;AAKE,QAAA,QAAQ,EAAE,KAAK4E,UALjB;AAME,QAAA,gBAAgB,EAAE,KAAKC,cANzB;AAOE,QAAA,WAAW,EAAEhC;AAPf,SADF,CApDF,CADF,eAiEE,gCAAC,qBAAD;AACE,QAAA,IAAI,EAAE5D,MAAM,CAACH,IADf;AAEE,QAAA,KAAK,EAAEG,MAAM,CAACmB,KAFhB;AAGE,QAAA,IAAI,EAAEnB,MAAM,CAACsB,IAHf;AAIE,QAAA,OAAO,EAAEtB,MAAM,CAACiG,OAJlB;AAKE,QAAA,SAAS,EAAEjG,MAAM,CAACwB;AALpB,QAjEF,CADF;AA2ED;;;EAvUwB0E,kBAAM3F,S;;;iCAApBrB,K,eAYQ;AACjByD,EAAAA,OAAO,EAAEwD,sBAAUC,MAAV,CAAiBC,UADT;AAEjBzD,EAAAA,SAAS,EAAEuD,sBAAUG,MAFJ;AAGjBpG,EAAAA,SAAS,EAAEiG,sBAAUG,MAAV,CAAiBD,UAHX;AAIjBrD,EAAAA,IAAI,EAAEmD,sBAAUI,KAAV,CAAgB;AACpB1C,IAAAA,KAAK,EAAEsC,sBAAUK,MADG;AAEpB1C,IAAAA,MAAM,EAAEqC,sBAAUK;AAFE,GAAhB,CAJW;AAQjB3D,EAAAA,MAAM,EAAEsD,sBAAUI,KAAV,CAAgB;AACtB5E,IAAAA,KAAK,EAAEwE,sBAAUG,MADK;AAEtBG,IAAAA,GAAG,EAAEN,sBAAUK,MAFO;AAGtBpB,IAAAA,GAAG,EAAEe,sBAAUK,MAHO;AAItBE,IAAAA,SAAS,EAAEP,sBAAUG;AAJC,GAAhB,CARS;AAcjB9F,EAAAA,IAAI,EAAE2F,sBAAUQ,OAAV,CAAkBR,sBAAUI,KAAV,CAAgB;AAAE5E,IAAAA,KAAK,EAAEwE,sBAAUG,MAAnB;AAA2B1E,IAAAA,KAAK,EAAEuE,sBAAUK;AAA5C,GAAhB,CAAlB,CAdW;AAejB1D,EAAAA,KAAK,EAAEqD,sBAAUI,KAAV,CAAgB;AACrB5E,IAAAA,KAAK,EAAEwE,sBAAUG,MADI;AAErBG,IAAAA,GAAG,EAAEN,sBAAUK,MAFM;AAGrBpB,IAAAA,GAAG,EAAEe,sBAAUK,MAHM;AAIrBI,IAAAA,IAAI,EAAET,sBAAUK,MAJK;AAKrBK,IAAAA,SAAS,EAAEV,sBAAUK,MALA;AAMrBE,IAAAA,SAAS,EAAEP,sBAAUG;AANA,GAAhB,CAfU;AAuBjBlH,EAAAA,MAAM,EAAE+G,sBAAUW,KAvBD;AAwBjB3D,EAAAA,kBAAkB,EAAEgD,sBAAUC,MAxBb;AAyBjBjF,EAAAA,KAAK,EAAEgF,sBAAUG,MAzBA;AA0BjBlD,EAAAA,gBAAgB,EAAE+C,sBAAUG,MA1BX;AA2BjB7F,EAAAA,YAAY,EAAE0F,sBAAUY,IA3BP;AA4BjB7D,EAAAA,cAAc,EAAEiD,sBAAUY,IA5BT;AA6BjB9D,EAAAA,aAAa,EAAEkD,sBAAUY,IA7BR;AA8BjBtD,EAAAA,KAAK,EAAE0C,sBAAUa,GA9BA;AA+BjB3D,EAAAA,kBAAkB,EAAE8C,sBAAUc,IA/Bb;AAgCjBzD,EAAAA,eAAe,EAAE2C,sBAAUc,IAhCV;AAiCjBnG,EAAAA,oBAAoB,EAAEqF,sBAAUG,MAjCf;AAkCjBtF,EAAAA,gBAAgB,EAAEmF,sBAAUC,MAlCX;AAmCjBrF,EAAAA,WAAW,EAAEoF,sBAAUc,IAnCN;AAoCjBC,EAAAA,KAAK,EAAEf,sBAAUC,MApCA;AAqCjBrD,EAAAA,eAAe,EAAEoD,sBAAUC,MArCV;AAsCjB9C,EAAAA,wBAAwB,EAAE6C,sBAAUc,IAtCnB;AAuCjB1D,EAAAA,qBAAqB,EAAE4C,sBAAUc,IAvChB;AAwCjBhG,EAAAA,QAAQ,EAAEkF,sBAAUG,MAxCH;AAyCjB5C,EAAAA,aAAa,EAAEyC,sBAAUC,MAzCR;AA0CjBzC,EAAAA,qBAAqB,EAAEwC,sBAAUK,MA1ChB;AA2CjB5C,EAAAA,WAAW,EAAEuC,sBAAUQ,OAAV,CACXR,sBAAUI,KAAV,CAAgB;AACd5E,IAAAA,KAAK,EAAEwE,sBAAUG,MADH;AAEd1E,IAAAA,KAAK,EAAEuE,sBAAUK;AAFH,GAAhB,CADW;AA3CI,C;iCAZRtH,K,kBA+DW;AACpB8D,EAAAA,IAAI,EAAE;AACJa,IAAAA,KAAK,EAAE,GADH;AAEJC,IAAAA,MAAM,EAAE;AAFJ;AADc,C;;AA2QxB,IAAMqD,MAAM,GAAG,SAATA,MAAS,CAACD,KAAD;AAAA,SAAY;AACzBE,IAAAA,QAAQ,EAAE;AACRC,MAAAA,SAAS,EAAE;AADH,KADe;AAIzBC,IAAAA,GAAG,EAAE;AACHC,MAAAA,QAAQ,EAAE;AADP,KAJoB;AAQzB/B,IAAAA,QAAQ,EAAE;AACR3B,MAAAA,KAAK,EAAE;AADC;AARe,GAAZ;AAAA,CAAf;;eAae,wBAAWsD,MAAX,EAAmB;AAAEK,EAAAA,SAAS,EAAE;AAAb,CAAnB,EAAwCtI,KAAxC,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport { Root, createGraphProps } from '@pie-lib/plot';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport ChartGrid from './grid';\nimport ChartAxes from './axes';\nimport { dataToXBand, getDomainAndRangeByChartType, getGridLinesAndAxisByChartType, getTopPadding } from './utils';\nimport chartTypes from './chart-types';\nimport ActionsButton from './actions-button';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst log = debug('pie-lib:charts:chart');\n\nexport class Chart extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false,\n },\n actionsAnchorEl: null,\n };\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n chartType: PropTypes.string.isRequired,\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number,\n }),\n domain: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n axisLabel: PropTypes.string,\n }),\n data: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.number })),\n range: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n labelStep: PropTypes.number,\n axisLabel: PropTypes.string,\n }),\n charts: PropTypes.array,\n labelsPlaceholders: PropTypes.object,\n title: PropTypes.string,\n titlePlaceholder: PropTypes.string,\n onDataChange: PropTypes.func,\n onChangeLabels: PropTypes.func,\n onChangeTitle: PropTypes.func,\n error: PropTypes.any,\n addCategoryEnabled: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n categoryDefaultLabel: PropTypes.string,\n categoryDefaults: PropTypes.object,\n defineChart: PropTypes.bool,\n theme: PropTypes.object,\n chartingOptions: PropTypes.object,\n changeInteractiveEnabled: PropTypes.bool,\n changeEditableEnabled: PropTypes.bool,\n language: PropTypes.string,\n mathMlOptions: PropTypes.object,\n labelsCharactersLimit: PropTypes.number,\n correctData: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.number,\n }),\n ),\n };\n\n static defaultProps = {\n size: {\n width: 480,\n height: 480,\n },\n };\n\n state = {\n charts: [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n ],\n autoFocus: false,\n };\n\n generateMaskId() {\n return 'chart-' + (Math.random() * 10000).toFixed();\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n getChart = () => {\n const charts = this.props.charts || this.state.charts;\n let { chartType } = this.props;\n let ChartComponent = null;\n let chart = null;\n\n if (chartType) {\n chart = charts && charts.find((chart) => chart.type === chartType);\n ChartComponent = chart && chart.Component;\n } else {\n chart = charts && charts[0];\n ChartComponent = chart && chart.Component;\n chartType = chart && chart.type;\n }\n\n return {\n type: chartType,\n ChartComponent,\n };\n };\n\n changeData = (data) => {\n const { onDataChange } = this.props;\n\n onDataChange(data);\n };\n\n changeCategory = (index, newCategory) => {\n const integerIndex = parseInt(index, 10);\n\n if (integerIndex >= 0) {\n const { data, onDataChange } = this.props;\n data[integerIndex] = {\n ...data[integerIndex],\n ...newCategory,\n };\n\n onDataChange(data);\n }\n };\n\n addCategory = () => {\n const { onDataChange, data, categoryDefaultLabel, defineChart, categoryDefaults, language } = this.props;\n\n if ((data || []).length > 19) {\n this.setState({\n dialog: {\n open: true,\n title: translator.t('common:warning', { lng: language }),\n text: translator.t('charting.reachedLimit_other', { count: 20, lng: language }),\n onConfirm: () => this.handleAlertDialog(false),\n },\n });\n } else {\n this.setState({ autoFocus: true });\n onDataChange([\n ...data,\n {\n inDefineChart: defineChart,\n label: categoryDefaultLabel || translator.t('charting.newLabel', { lng: language }),\n value: 0,\n deletable: true,\n editable: categoryDefaults ? categoryDefaults?.editable : true,\n interactive: categoryDefaults ? categoryDefaults?.interactive : true,\n },\n ]);\n }\n };\n\n deleteCategory = (index) => {\n const { data, onDataChange } = this.props;\n\n if (typeof index !== 'number' || index < 0) {\n return;\n }\n\n if (data && data.length > 0) {\n onDataChange(data.filter((_, i) => i !== index));\n }\n };\n\n getFilteredCategories = () => {\n const { data, defineChart } = this.props;\n\n return data\n ? data.map((d) => ({\n ...d,\n deletable: defineChart || d.deletable,\n }))\n : [];\n };\n\n resetAutoFocus = () => {\n this.setState({ autoFocus: false });\n };\n\n render() {\n const {\n classes,\n className,\n domain = {},\n range = {},\n chartingOptions,\n size,\n title,\n onChangeTitle,\n onChangeLabels,\n labelsPlaceholders,\n titlePlaceholder,\n addCategoryEnabled,\n changeInteractiveEnabled,\n changeEditableEnabled,\n showPixelGuides,\n error,\n mathMlOptions = {},\n language,\n labelsCharactersLimit,\n correctData,\n } = this.props;\n let { chartType } = this.props;\n\n const { dialog } = this.state;\n const defineChart = this.props.defineChart || false;\n\n const { width, height } = size || {};\n const labels = { left: range?.label || '', bottom: domain?.label || '' };\n\n const { ChartComponent } = this.getChart();\n const categories = this.getFilteredCategories();\n\n const correctValues = getDomainAndRangeByChartType(domain, range, chartType);\n\n const { verticalLines, horizontalLines, leftAxis } = getGridLinesAndAxisByChartType(correctValues.range, chartType);\n const common = {\n graphProps: createGraphProps(correctValues.domain, correctValues.range, size, () => this.rootNode),\n };\n\n log('[render] common:', common);\n\n const maskSize = { x: -10, y: -75, width: width + 20, height: height + 130 };\n const { scale } = common.graphProps;\n const xBand = dataToXBand(scale.x, categories, width, chartType);\n\n if (!ChartComponent) {\n return null;\n }\n\n const bandWidth = xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;\n const increaseHeight = defineChart ? 160 : 60;\n\n // if there are many categories, we have to rotate their names in order to fit\n // and we have to add extra value on top of some items\n const top = getTopPadding(barWidth);\n const rootCommon = cloneDeep(common);\n rootCommon.graphProps.size.height += top + increaseHeight;\n\n return (\n <div className={classNames(classes.chart, classes.chartBox, className)}>\n <Root\n title={title}\n onChangeTitle={onChangeTitle}\n disabledTitle={!defineChart}\n showTitle={true}\n showLabels={true}\n labels={labels}\n onChangeLabels={onChangeLabels}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder}\n defineChart={defineChart}\n disabledLabels={!defineChart}\n isChart={true}\n showPixelGuides={showPixelGuides}\n rootRef={(r) => (this.rootNode = r)}\n mathMlOptions={mathMlOptions}\n labelsCharactersLimit={labelsCharactersLimit}\n {...rootCommon}\n >\n <ChartGrid {...common} xBand={xBand} rowTickValues={horizontalLines} columnTickValues={verticalLines} />\n <ChartAxes\n autoFocus={this.state.autoFocus}\n onAutoFocusUsed={this.resetAutoFocus}\n {...common}\n defineChart={defineChart}\n categories={categories}\n xBand={xBand}\n leftAxis={leftAxis}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n chartingOptions={chartingOptions}\n changeInteractiveEnabled={changeInteractiveEnabled}\n changeEditableEnabled={changeEditableEnabled}\n top={top}\n error={error}\n showCorrectness={chartType === 'linePlot' || chartType === 'dotPlot'}\n />\n {addCategoryEnabled ? (\n <foreignObject x={width} y={height - 16} width={width} height={height}>\n <div xmlns=\"http://www.w3.org/1999/xhtml\" style={{ display: 'flex', justifyContent: 'flex-start' }}>\n <ActionsButton\n categories={categories}\n addCategory={this.addCategory}\n deleteCategory={this.deleteCategory}\n language={language}\n />\n </div>\n </foreignObject>\n ) : null}\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" />\n </mask>\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n <ChartComponent\n {...common}\n data={categories}\n height={rootCommon.graphProps.size.height}\n defineChart={defineChart}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n correctData={correctData}\n />\n </g>\n </Root>\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphBox: {\n transform: 'translate(60px, 35px)',\n },\n svg: {\n overflow: 'visible',\n },\n\n chartBox: {\n width: 'min-content',\n },\n});\n\nexport default withStyles(styles, { withTheme: true })(Chart);\n"],"file":"chart.js"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.TickCorrectnessIndicator = exports.SmallCorrectPointIndicator = exports.CorrectnessIndicator = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
+
|
|
14
|
+
var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
|
|
15
|
+
|
|
16
|
+
var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
|
|
17
|
+
|
|
18
|
+
var CorrectnessIndicator = function CorrectnessIndicator(_ref) {
|
|
19
|
+
var scale = _ref.scale,
|
|
20
|
+
x = _ref.x,
|
|
21
|
+
y = _ref.y,
|
|
22
|
+
classes = _ref.classes,
|
|
23
|
+
r = _ref.r,
|
|
24
|
+
correctness = _ref.correctness,
|
|
25
|
+
interactive = _ref.interactive;
|
|
26
|
+
if (!correctness || !interactive) return null;
|
|
27
|
+
var cx = scale ? scale.x(x) : x;
|
|
28
|
+
var cy = scale ? scale.y(y) : y;
|
|
29
|
+
var isCorrect = correctness.value === 'correct';
|
|
30
|
+
var iconClass = isCorrect ? classes.correctIcon : classes.incorrectIcon; // the icon is 16px + 2px padding + 1px border, so total size is 22px
|
|
31
|
+
|
|
32
|
+
return /*#__PURE__*/_react["default"].createElement("foreignObject", {
|
|
33
|
+
x: cx - 11,
|
|
34
|
+
y: cy - 11,
|
|
35
|
+
width: 22,
|
|
36
|
+
height: 22
|
|
37
|
+
}, isCorrect ? /*#__PURE__*/_react["default"].createElement(_Check["default"], {
|
|
38
|
+
className: (0, _classnames["default"])(classes.correctnessIcon, iconClass),
|
|
39
|
+
title: correctness.label
|
|
40
|
+
}) : /*#__PURE__*/_react["default"].createElement(_Close["default"], {
|
|
41
|
+
className: (0, _classnames["default"])(classes.correctnessIcon, iconClass),
|
|
42
|
+
title: correctness.label
|
|
43
|
+
}));
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
exports.CorrectnessIndicator = CorrectnessIndicator;
|
|
47
|
+
|
|
48
|
+
var SmallCorrectPointIndicator = function SmallCorrectPointIndicator(_ref2) {
|
|
49
|
+
var scale = _ref2.scale,
|
|
50
|
+
x = _ref2.x,
|
|
51
|
+
r = _ref2.r,
|
|
52
|
+
correctness = _ref2.correctness,
|
|
53
|
+
classes = _ref2.classes,
|
|
54
|
+
correctData = _ref2.correctData,
|
|
55
|
+
label = _ref2.label;
|
|
56
|
+
|
|
57
|
+
if (correctness && correctness.value === 'incorrect') {
|
|
58
|
+
var _correctData$find;
|
|
59
|
+
|
|
60
|
+
var correctVal = parseFloat((_correctData$find = correctData.find(function (d) {
|
|
61
|
+
return d.label === label;
|
|
62
|
+
})) === null || _correctData$find === void 0 ? void 0 : _correctData$find.value);
|
|
63
|
+
if (isNaN(correctVal)) return null;
|
|
64
|
+
var correctPxY = scale.y(correctVal);
|
|
65
|
+
var yToRender = correctPxY - 7.5;
|
|
66
|
+
var xToRender = scale.x(x) - 7.5; // small circle has 10px font + 2px padding + 1px border, so total size is 15px
|
|
67
|
+
|
|
68
|
+
return /*#__PURE__*/_react["default"].createElement("foreignObject", {
|
|
69
|
+
x: xToRender,
|
|
70
|
+
y: yToRender,
|
|
71
|
+
width: 15,
|
|
72
|
+
height: 15
|
|
73
|
+
}, /*#__PURE__*/_react["default"].createElement(_Check["default"], {
|
|
74
|
+
className: (0, _classnames["default"])(classes.correctnessIcon, classes.correctIcon, classes.smallIcon),
|
|
75
|
+
title: correctness.label
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return null;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
exports.SmallCorrectPointIndicator = SmallCorrectPointIndicator;
|
|
83
|
+
|
|
84
|
+
var TickCorrectnessIndicator = function TickCorrectnessIndicator(_ref3) {
|
|
85
|
+
var classes = _ref3.classes,
|
|
86
|
+
correctness = _ref3.correctness,
|
|
87
|
+
interactive = _ref3.interactive;
|
|
88
|
+
if (!correctness || !interactive) return null;
|
|
89
|
+
return correctness.value === 'correct' ? /*#__PURE__*/_react["default"].createElement(_Check["default"], {
|
|
90
|
+
className: (0, _classnames["default"])(classes.correctnessIcon, classes.correctIcon),
|
|
91
|
+
title: correctness.label
|
|
92
|
+
}) : /*#__PURE__*/_react["default"].createElement(_Close["default"], {
|
|
93
|
+
className: (0, _classnames["default"])(classes.correctnessIcon, classes.incorrectIcon),
|
|
94
|
+
title: correctness.label
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
exports.TickCorrectnessIndicator = TickCorrectnessIndicator;
|
|
99
|
+
//# sourceMappingURL=correctness-indicators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/common/correctness-indicators.jsx"],"names":["CorrectnessIndicator","scale","x","y","classes","r","correctness","interactive","cx","cy","isCorrect","value","iconClass","correctIcon","incorrectIcon","correctnessIcon","label","SmallCorrectPointIndicator","correctData","correctVal","parseFloat","find","d","isNaN","correctPxY","yToRender","xToRender","smallIcon","TickCorrectnessIndicator"],"mappings":"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","sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport Check from '@material-ui/icons/Check';\nimport Close from '@material-ui/icons/Close';\n\nexport const CorrectnessIndicator = ({ scale, x, y, classes, r, correctness, interactive }) => {\n if (!correctness || !interactive) return null;\n const cx = scale ? scale.x(x) : x;\n const cy = scale ? scale.y(y) : y;\n const isCorrect = correctness.value === 'correct';\n const iconClass = isCorrect ? classes.correctIcon : classes.incorrectIcon;\n\n // the icon is 16px + 2px padding + 1px border, so total size is 22px\n return (\n <foreignObject x={cx - 11} y={cy - 11} width={22} height={22}>\n {isCorrect ? (\n <Check className={classNames(classes.correctnessIcon, iconClass)} title={correctness.label} />\n ) : (\n <Close className={classNames(classes.correctnessIcon, iconClass)} title={correctness.label} />\n )}\n </foreignObject>\n );\n};\n\nexport const SmallCorrectPointIndicator = ({ scale, x, r, correctness, classes, correctData, label }) => {\n if (correctness && correctness.value === 'incorrect') {\n const correctVal = parseFloat(correctData.find((d) => d.label === label)?.value);\n if (isNaN(correctVal)) return null;\n const correctPxY = scale.y(correctVal);\n const yToRender = correctPxY - 7.5;\n const xToRender = scale.x(x) - 7.5;\n\n // small circle has 10px font + 2px padding + 1px border, so total size is 15px\n return (\n <foreignObject x={xToRender} y={yToRender} width={15} height={15}>\n <Check\n className={classNames(classes.correctnessIcon, classes.correctIcon, classes.smallIcon)}\n title={correctness.label}\n />\n </foreignObject>\n );\n }\n\n return null;\n};\n\nexport const TickCorrectnessIndicator = ({ classes, correctness, interactive }) => {\n if (!correctness || !interactive) return null;\n\n return correctness.value === 'correct' ? (\n <Check className={classNames(classes.correctnessIcon, classes.correctIcon)} title={correctness.label} />\n ) : (\n <Close className={classNames(classes.correctnessIcon, classes.incorrectIcon)} title={correctness.label} />\n );\n};\n"],"file":"correctness-indicators.js"}
|
|
@@ -19,6 +19,10 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
19
19
|
|
|
20
20
|
var _styles = require("@material-ui/core/styles");
|
|
21
21
|
|
|
22
|
+
var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
|
|
23
|
+
|
|
24
|
+
var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
|
|
25
|
+
|
|
22
26
|
var _plot = require("@pie-lib/plot");
|
|
23
27
|
|
|
24
28
|
var _renderUi = require("@pie-lib/render-ui");
|
|
@@ -29,7 +33,7 @@ var _utils = require("../utils");
|
|
|
29
33
|
|
|
30
34
|
var _dragIcon = _interopRequireDefault(require("./drag-icon"));
|
|
31
35
|
|
|
32
|
-
var _excluded = ["x", "y", "width", "graphProps", "classes", "className", "interactive", "defineChart", "isHovered", "correctness", "color"];
|
|
36
|
+
var _excluded = ["x", "y", "width", "graphProps", "classes", "className", "interactive", "defineChart", "isHovered", "correctness", "color", "isPlot"];
|
|
33
37
|
|
|
34
38
|
var RawDragHandle = function RawDragHandle(_ref) {
|
|
35
39
|
var _getScale;
|
|
@@ -45,6 +49,7 @@ var RawDragHandle = function RawDragHandle(_ref) {
|
|
|
45
49
|
isHovered = _ref.isHovered,
|
|
46
50
|
correctness = _ref.correctness,
|
|
47
51
|
color = _ref.color,
|
|
52
|
+
isPlot = _ref.isPlot,
|
|
48
53
|
rest = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
49
54
|
var scale = graphProps.scale;
|
|
50
55
|
var scaleValue = (_getScale = (0, _utils.getScale)(width)) === null || _getScale === void 0 ? void 0 : _getScale.scale;
|
|
@@ -86,12 +91,18 @@ var RawDragHandle = function RawDragHandle(_ref) {
|
|
|
86
91
|
operator: "in"
|
|
87
92
|
}), /*#__PURE__*/_react["default"].createElement("feMerge", null, /*#__PURE__*/_react["default"].createElement("feMergeNode", null), /*#__PURE__*/_react["default"].createElement("feMergeNode", {
|
|
88
93
|
"in": "SourceGraphic"
|
|
89
|
-
})))), correctness && /*#__PURE__*/_react["default"].createElement("
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
},
|
|
94
|
+
})))), correctness && interactive && !isPlot && /*#__PURE__*/_react["default"].createElement("foreignObject", {
|
|
95
|
+
x: width / 2 - 14,
|
|
96
|
+
y: 0,
|
|
97
|
+
width: 40,
|
|
98
|
+
height: 40
|
|
99
|
+
}, correctness.value === 'correct' ? /*#__PURE__*/_react["default"].createElement(_Check["default"], {
|
|
100
|
+
className: (0, _classnames["default"])(classes.correctnessIcon, classes.correctIcon),
|
|
101
|
+
title: correctness.label
|
|
102
|
+
}) : /*#__PURE__*/_react["default"].createElement(_Close["default"], {
|
|
103
|
+
className: (0, _classnames["default"])(classes.correctnessIcon, classes.incorrectIcon),
|
|
104
|
+
title: correctness.label
|
|
105
|
+
})));
|
|
95
106
|
};
|
|
96
107
|
|
|
97
108
|
RawDragHandle.propTypes = {
|
|
@@ -109,7 +120,7 @@ RawDragHandle.propTypes = {
|
|
|
109
120
|
}),
|
|
110
121
|
color: _propTypes["default"].string
|
|
111
122
|
};
|
|
112
|
-
var DragHandle = (0, _styles.withStyles)(function () {
|
|
123
|
+
var DragHandle = (0, _styles.withStyles)(function (theme) {
|
|
113
124
|
return {
|
|
114
125
|
handle: {
|
|
115
126
|
height: '10px',
|
|
@@ -137,6 +148,23 @@ var DragHandle = (0, _styles.withStyles)(function () {
|
|
|
137
148
|
},
|
|
138
149
|
svgOverflowVisible: {
|
|
139
150
|
overflow: 'visible !important'
|
|
151
|
+
},
|
|
152
|
+
correctIcon: {
|
|
153
|
+
backgroundColor: _renderUi.color.correct()
|
|
154
|
+
},
|
|
155
|
+
incorrectIcon: {
|
|
156
|
+
backgroundColor: _renderUi.color.incorrectWithIcon()
|
|
157
|
+
},
|
|
158
|
+
correctnessIcon: {
|
|
159
|
+
borderRadius: theme.spacing.unit * 2,
|
|
160
|
+
color: _renderUi.color.defaults.WHITE,
|
|
161
|
+
fontSize: '16px',
|
|
162
|
+
padding: '2px',
|
|
163
|
+
border: "4px solid ".concat(_renderUi.color.defaults.WHITE),
|
|
164
|
+
width: '16px',
|
|
165
|
+
height: '16px',
|
|
166
|
+
boxSizing: 'unset' // to override the default border-box in IBX
|
|
167
|
+
|
|
140
168
|
}
|
|
141
169
|
};
|
|
142
170
|
})(RawDragHandle);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/common/drag-handle.jsx"],"names":["RawDragHandle","x","y","width","graphProps","classes","className","interactive","defineChart","isHovered","correctness","color","rest","scale","scaleValue","svgOverflowVisible","enumColor","defaults","BORDER_GRAY","transparentHandle","handle","value","propTypes","PropTypes","number","isRequired","types","GraphPropsType","object","string","bool","shape","label","DragHandle","height","fill","transition","clipPath","handleContainer","secondaryDark","overflow","D","axis","fromDelta","props","delta","newPoint","utils","point","add","bounds","domain","range","area","left","top","bottom","right","anchorPoint"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { gridDraggable, utils, types } from '@pie-lib/plot';\nimport { color as enumColor } from '@pie-lib/render-ui';\nimport { correct, incorrect, disabled } from './styles';\nimport { getScale } from '../utils';\nimport DragIcon from './drag-icon';\n\nconst RawDragHandle = ({\n x,\n y,\n width,\n graphProps,\n classes,\n className,\n interactive,\n defineChart,\n isHovered,\n correctness,\n color,\n ...rest\n}) => {\n const { scale } = graphProps;\n const scaleValue = getScale(width)?.scale;\n\n return (\n <svg x={x} y={scale.y(y) - 10} width={width} overflow=\"visible\" className={classes.svgOverflowVisible}>\n {isHovered && !correctness && interactive && (\n <DragIcon width={width} scaleValue={scaleValue} color={enumColor.defaults.BORDER_GRAY} classes={classes} />\n )}\n {interactive && !correctness && (\n <ellipse\n cx={width / 2}\n cy={10}\n rx={width / 2}\n // the drag icon has a 22px fixed r value, so the ry value is 3 times that in order to cover all the area\n ry={66}\n className={classNames(classes.transparentHandle, className)}\n {...rest}\n />\n )}\n\n <defs>\n <filter id=\"bottomShadow\" x=\"0\" y=\"0\" width=\"140%\" height=\"140%\">\n <feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"3\" />\n <feOffset dx=\"0\" dy=\"5\" result=\"offsetblur\" />\n <feFlood floodColor=\"#00000033\" />\n <feComposite in2=\"offsetblur\" operator=\"in\" />\n <feMerge>\n <feMergeNode />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>\n </defs>\n\n {correctness && (\n <rect\n y={10}\n width={width}\n filter=\"url(#bottomShadow)\"\n className={classNames(\n classes.handle,\n 'handle',\n className,\n !interactive && 'non-interactive',\n interactive && correctness && correctness.value,\n )}\n {...rest}\n />\n )}\n </svg>\n );\n};\n\nRawDragHandle.propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n interactive: PropTypes.bool,\n isHovered: PropTypes.bool,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n }),\n color: PropTypes.string,\n};\n\nexport const DragHandle = withStyles(() => ({\n handle: {\n height: '10px',\n fill: 'transparent',\n transition: 'fill 200ms linear, height 200ms linear',\n '&.correct': correct('fill'),\n '&.incorrect': incorrect('fill'),\n '&.non-interactive': disabled('fill'),\n },\n transparentHandle: {\n fill: 'transparent',\n clipPath: 'polygon(50% 0%, 100% 0%, 100% 50%, 0% 50%, 0% 0%)',\n },\n handleContainer: {\n height: 30,\n '&:hover': {\n '& .handle': {\n fill: enumColor.secondaryDark(),\n height: '16px',\n },\n },\n '&.non-interactive': disabled('fill'),\n '&.incorrect': incorrect('fill'),\n '&.correct': correct('fill'),\n },\n svgOverflowVisible: {\n overflow: 'visible !important',\n },\n}))(RawDragHandle);\n\nexport const D = gridDraggable({\n axis: 'y',\n fromDelta: (props, delta) => {\n //TODO: should be in grid-draggable, if axis is y delta.x should always be 0.\n delta.x = 0;\n const newPoint = utils.point(props).add(utils.point(delta));\n\n return newPoint.y;\n },\n bounds: (props, { domain, range }) => {\n const area = { left: 0, top: props.y, bottom: props.y, right: 0 };\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n return { x: props.x, y: props.y };\n },\n})(DragHandle);\n\nexport default D;\n"],"file":"drag-handle.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/common/drag-handle.jsx"],"names":["RawDragHandle","x","y","width","graphProps","classes","className","interactive","defineChart","isHovered","correctness","color","isPlot","rest","scale","scaleValue","svgOverflowVisible","enumColor","defaults","BORDER_GRAY","transparentHandle","value","correctnessIcon","correctIcon","label","incorrectIcon","propTypes","PropTypes","number","isRequired","types","GraphPropsType","object","string","bool","shape","DragHandle","theme","handle","height","fill","transition","clipPath","handleContainer","secondaryDark","overflow","backgroundColor","correct","incorrectWithIcon","borderRadius","spacing","unit","WHITE","fontSize","padding","border","boxSizing","D","axis","fromDelta","props","delta","newPoint","utils","point","add","bounds","domain","range","area","left","top","bottom","right","anchorPoint"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport Check from '@material-ui/icons/Check';\nimport Close from '@material-ui/icons/Close';\n\nimport { gridDraggable, utils, types } from '@pie-lib/plot';\nimport { color as enumColor } from '@pie-lib/render-ui';\nimport { correct, incorrect, disabled } from './styles';\nimport { getScale } from '../utils';\nimport DragIcon from './drag-icon';\n\nconst RawDragHandle = ({\n x,\n y,\n width,\n graphProps,\n classes,\n className,\n interactive,\n defineChart,\n isHovered,\n correctness,\n color,\n isPlot,\n ...rest\n}) => {\n const { scale } = graphProps;\n const scaleValue = getScale(width)?.scale;\n\n return (\n <svg x={x} y={scale.y(y) - 10} width={width} overflow=\"visible\" className={classes.svgOverflowVisible}>\n {isHovered && !correctness && interactive && (\n <DragIcon width={width} scaleValue={scaleValue} color={enumColor.defaults.BORDER_GRAY} classes={classes} />\n )}\n {interactive && !correctness && (\n <ellipse\n cx={width / 2}\n cy={10}\n rx={width / 2}\n // the drag icon has a 22px fixed r value, so the ry value is 3 times that in order to cover all the area\n ry={66}\n className={classNames(classes.transparentHandle, className)}\n {...rest}\n />\n )}\n\n <defs>\n <filter id=\"bottomShadow\" x=\"0\" y=\"0\" width=\"140%\" height=\"140%\">\n <feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"3\" />\n <feOffset dx=\"0\" dy=\"5\" result=\"offsetblur\" />\n <feFlood floodColor=\"#00000033\" />\n <feComposite in2=\"offsetblur\" operator=\"in\" />\n <feMerge>\n <feMergeNode />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>\n </defs>\n\n {correctness && interactive && !isPlot && (\n <foreignObject x={width / 2 - 14} y={0} width={40} height={40}>\n {correctness.value === 'correct' ? (\n <Check className={classNames(classes.correctnessIcon, classes.correctIcon)} title={correctness.label} />\n ) : (\n <Close className={classNames(classes.correctnessIcon, classes.incorrectIcon)} title={correctness.label} />\n )}\n </foreignObject>\n )}\n </svg>\n );\n};\n\nRawDragHandle.propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n interactive: PropTypes.bool,\n isHovered: PropTypes.bool,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n }),\n color: PropTypes.string,\n};\n\nexport const DragHandle = withStyles((theme) => ({\n handle: {\n height: '10px',\n fill: 'transparent',\n transition: 'fill 200ms linear, height 200ms linear',\n '&.correct': correct('fill'),\n '&.incorrect': incorrect('fill'),\n '&.non-interactive': disabled('fill'),\n },\n transparentHandle: {\n fill: 'transparent',\n clipPath: 'polygon(50% 0%, 100% 0%, 100% 50%, 0% 50%, 0% 0%)',\n },\n handleContainer: {\n height: 30,\n '&:hover': {\n '& .handle': {\n fill: enumColor.secondaryDark(),\n height: '16px',\n },\n },\n '&.non-interactive': disabled('fill'),\n '&.incorrect': incorrect('fill'),\n '&.correct': correct('fill'),\n },\n svgOverflowVisible: {\n overflow: 'visible !important',\n },\n correctIcon: {\n backgroundColor: enumColor.correct(),\n },\n incorrectIcon: {\n backgroundColor: enumColor.incorrectWithIcon(),\n },\n correctnessIcon: {\n borderRadius: theme.spacing.unit * 2,\n color: enumColor.defaults.WHITE,\n fontSize: '16px',\n padding: '2px',\n border: `4px solid ${enumColor.defaults.WHITE}`,\n width: '16px',\n height: '16px',\n boxSizing: 'unset', // to override the default border-box in IBX\n },\n}))(RawDragHandle);\n\nexport const D = gridDraggable({\n axis: 'y',\n fromDelta: (props, delta) => {\n //TODO: should be in grid-draggable, if axis is y delta.x should always be 0.\n delta.x = 0;\n const newPoint = utils.point(props).add(utils.point(delta));\n\n return newPoint.y;\n },\n bounds: (props, { domain, range }) => {\n const area = { left: 0, top: props.y, bottom: props.y, right: 0 };\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n return { x: props.x, y: props.y };\n },\n})(DragHandle);\n\nexport default D;\n"],"file":"drag-handle.js"}
|
|
@@ -27,13 +27,13 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
27
27
|
|
|
28
28
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
31
|
|
|
32
32
|
var _index = require("@material-ui/core/styles/index");
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _plot = require("@pie-lib/plot");
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
37
37
|
|
|
38
38
|
var _styles = require("../../common/styles");
|
|
39
39
|
|
|
@@ -95,12 +95,10 @@ var RawDragHandle = /*#__PURE__*/function (_React$Component) {
|
|
|
95
95
|
label: _propTypes["default"].string
|
|
96
96
|
})
|
|
97
97
|
});
|
|
98
|
-
var DragHandle = (0, _index.withStyles)(function () {
|
|
98
|
+
var DragHandle = (0, _index.withStyles)(function (theme) {
|
|
99
99
|
return {
|
|
100
100
|
handle: {
|
|
101
101
|
transition: 'fill 200ms linear, height 200ms linear',
|
|
102
|
-
'&.correct': (0, _styles.correct)('fill'),
|
|
103
|
-
'&.incorrect': (0, _styles.incorrect)('fill'),
|
|
104
102
|
'&.non-interactive': (0, _styles.disabled)('fill')
|
|
105
103
|
},
|
|
106
104
|
transparentHandle: {
|
|
@@ -111,9 +109,34 @@ var DragHandle = (0, _index.withStyles)(function () {
|
|
|
111
109
|
line: {
|
|
112
110
|
stroke: _renderUi.color.defaults.TEXT,
|
|
113
111
|
transition: 'fill 200ms linear, height 200ms linear',
|
|
114
|
-
'&.non-interactive': (0, _styles.disabled)('stroke')
|
|
115
|
-
|
|
116
|
-
|
|
112
|
+
'&.non-interactive': (0, _styles.disabled)('stroke')
|
|
113
|
+
},
|
|
114
|
+
disabledPoint: {
|
|
115
|
+
fill: _renderUi.color.defaults.BLACK + ' !important',
|
|
116
|
+
stroke: _renderUi.color.defaults.BLACK + ' !important'
|
|
117
|
+
},
|
|
118
|
+
correctIcon: {
|
|
119
|
+
backgroundColor: _renderUi.color.correct()
|
|
120
|
+
},
|
|
121
|
+
incorrectIcon: {
|
|
122
|
+
backgroundColor: _renderUi.color.incorrectWithIcon()
|
|
123
|
+
},
|
|
124
|
+
correctnessIcon: {
|
|
125
|
+
borderRadius: theme.spacing.unit * 2,
|
|
126
|
+
color: _renderUi.color.defaults.WHITE,
|
|
127
|
+
fontSize: '16px',
|
|
128
|
+
width: '16px',
|
|
129
|
+
height: '16px',
|
|
130
|
+
padding: '2px',
|
|
131
|
+
border: "1px solid ".concat(_renderUi.color.defaults.WHITE),
|
|
132
|
+
stroke: 'initial',
|
|
133
|
+
boxSizing: 'unset' // to override the default border-box in IBX
|
|
134
|
+
|
|
135
|
+
},
|
|
136
|
+
smallIcon: {
|
|
137
|
+
fontSize: '10px',
|
|
138
|
+
width: '10px',
|
|
139
|
+
height: '10px'
|
|
117
140
|
}
|
|
118
141
|
};
|
|
119
142
|
})(RawDragHandle);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/line/common/drag-handle.jsx"],"names":["RawDragHandle","props","x","y","graphProps","classes","className","interactive","CustomDraggableComponent","correctness","rest","scale","React","Component","PropTypes","number","isRequired","width","types","GraphPropsType","object","string","bool","func","shape","value","label","DragHandle","handle","transition","transparentHandle","height","fill","stroke","line","color","defaults","TEXT","DraggableHandle","axis","fromDelta","delta","newPoint","utils","point","add","bounds","domain","range","area","left","top","bottom","right","anchorPoint"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["../../../src/line/common/drag-handle.jsx"],"names":["RawDragHandle","props","x","y","graphProps","classes","className","interactive","CustomDraggableComponent","correctness","rest","scale","React","Component","PropTypes","number","isRequired","width","types","GraphPropsType","object","string","bool","func","shape","value","label","DragHandle","theme","handle","transition","transparentHandle","height","fill","stroke","line","color","defaults","TEXT","disabledPoint","BLACK","correctIcon","backgroundColor","correct","incorrectIcon","incorrectWithIcon","correctnessIcon","borderRadius","spacing","unit","WHITE","fontSize","padding","border","boxSizing","smallIcon","DraggableHandle","axis","fromDelta","delta","newPoint","utils","point","add","bounds","domain","range","area","left","top","bottom","right","anchorPoint"],"mappings":"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","sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles/index';\n\nimport { gridDraggable, utils, types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { disabled } from '../../common/styles';\n\nclass RawDragHandle extends React.Component {\n static propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n interactive: PropTypes.bool,\n CustomDraggableComponent: PropTypes.func,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n }),\n };\n\n render() {\n const {\n x,\n y,\n graphProps,\n classes,\n className,\n interactive,\n CustomDraggableComponent,\n correctness,\n ...rest\n } = this.props;\n const { scale } = graphProps;\n\n return (\n <CustomDraggableComponent\n scale={scale}\n x={x}\n y={y}\n classes={classes}\n className={classNames(className, !interactive && 'non-interactive')}\n correctness={correctness}\n interactive={interactive}\n {...rest}\n />\n );\n }\n}\n\nexport const DragHandle = withStyles((theme) => ({\n handle: {\n transition: 'fill 200ms linear, height 200ms linear',\n '&.non-interactive': disabled('fill'),\n },\n transparentHandle: {\n height: '20px',\n fill: 'transparent',\n stroke: 'transparent',\n },\n line: {\n stroke: color.defaults.TEXT,\n transition: 'fill 200ms linear, height 200ms linear',\n '&.non-interactive': disabled('stroke'),\n },\n disabledPoint: {\n fill: color.defaults.BLACK + ' !important',\n stroke: color.defaults.BLACK + ' !important',\n },\n correctIcon: {\n backgroundColor: color.correct(),\n },\n incorrectIcon: {\n backgroundColor: color.incorrectWithIcon(),\n },\n correctnessIcon: {\n borderRadius: theme.spacing.unit * 2,\n color: color.defaults.WHITE,\n fontSize: '16px',\n width: '16px',\n height: '16px',\n padding: '2px',\n border: `1px solid ${color.defaults.WHITE}`,\n stroke: 'initial',\n boxSizing: 'unset', // to override the default border-box in IBX\n },\n smallIcon: {\n fontSize: '10px',\n width: '10px',\n height: '10px',\n },\n}))(RawDragHandle);\n\nconst DraggableHandle = gridDraggable({\n axis: 'y',\n fromDelta: (props, delta) => {\n //TODO: should be in grid-draggable, if axis is y delta.x should always be 0.\n delta.x = 0;\n const newPoint = utils.point(props).add(utils.point(delta));\n\n return newPoint.y;\n },\n bounds: (props, { domain, range }) => {\n const area = { left: 0, top: props.y, bottom: props.y, right: 0 };\n\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n return { x: props.x, y: props.y };\n },\n})(DragHandle);\n\nexport default DraggableHandle;\n"],"file":"drag-handle.js"}
|