@pie-lib/charting 7.1.0-beta.7 → 7.1.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/package.json +2 -2
  2. package/lib/__tests__/actions-button.test.js +0 -332
  3. package/lib/__tests__/actions-button.test.js.map +0 -1
  4. package/lib/__tests__/axes.test.js +0 -746
  5. package/lib/__tests__/axes.test.js.map +0 -1
  6. package/lib/__tests__/chart-setup.test.js +0 -796
  7. package/lib/__tests__/chart-setup.test.js.map +0 -1
  8. package/lib/__tests__/chart-type.test.js +0 -25
  9. package/lib/__tests__/chart-type.test.js.map +0 -1
  10. package/lib/__tests__/chart.test.js +0 -103
  11. package/lib/__tests__/chart.test.js.map +0 -1
  12. package/lib/__tests__/grid.test.js +0 -39
  13. package/lib/__tests__/grid.test.js.map +0 -1
  14. package/lib/__tests__/key-legend.test.js +0 -235
  15. package/lib/__tests__/key-legend.test.js.map +0 -1
  16. package/lib/__tests__/mark-label.test.js +0 -46
  17. package/lib/__tests__/mark-label.test.js.map +0 -1
  18. package/lib/__tests__/tool-menu.test.js +0 -627
  19. package/lib/__tests__/tool-menu.test.js.map +0 -1
  20. package/lib/__tests__/utils.js +0 -56
  21. package/lib/__tests__/utils.js.map +0 -1
  22. package/lib/__tests__/utils.test.js +0 -186
  23. package/lib/__tests__/utils.test.js.map +0 -1
  24. package/lib/bars/__tests__/bar.test.js +0 -53
  25. package/lib/bars/__tests__/bar.test.js.map +0 -1
  26. package/lib/bars/__tests__/histogram.test.js +0 -53
  27. package/lib/bars/__tests__/histogram.test.js.map +0 -1
  28. package/lib/bars/__tests__/utils.js +0 -50
  29. package/lib/bars/__tests__/utils.js.map +0 -1
  30. package/lib/bars/common/__tests__/bars.test.js +0 -76
  31. package/lib/bars/common/__tests__/bars.test.js.map +0 -1
  32. package/lib/bars/common/__tests__/utils.js +0 -50
  33. package/lib/bars/common/__tests__/utils.js.map +0 -1
  34. package/lib/common/__tests__/correctness-indicators.test.js +0 -887
  35. package/lib/common/__tests__/correctness-indicators.test.js.map +0 -1
  36. package/lib/common/__tests__/drag-handle.test.js +0 -73
  37. package/lib/common/__tests__/drag-handle.test.js.map +0 -1
  38. package/lib/common/__tests__/utils.js +0 -50
  39. package/lib/common/__tests__/utils.js.map +0 -1
  40. package/lib/line/__tests__/line-cross.test.js +0 -617
  41. package/lib/line/__tests__/line-cross.test.js.map +0 -1
  42. package/lib/line/__tests__/line-dot.test.js +0 -47
  43. package/lib/line/__tests__/line-dot.test.js.map +0 -1
  44. package/lib/line/__tests__/utils.js +0 -56
  45. package/lib/line/__tests__/utils.js.map +0 -1
  46. package/lib/line/common/__tests__/drag-handle.test.js +0 -73
  47. package/lib/line/common/__tests__/drag-handle.test.js.map +0 -1
  48. package/lib/line/common/__tests__/line.test.js +0 -92
  49. package/lib/line/common/__tests__/line.test.js.map +0 -1
  50. package/lib/line/common/__tests__/utils.js +0 -50
  51. package/lib/line/common/__tests__/utils.js.map +0 -1
  52. package/lib/plot/__tests__/dot.test.js +0 -513
  53. package/lib/plot/__tests__/dot.test.js.map +0 -1
  54. package/lib/plot/__tests__/line.test.js +0 -566
  55. package/lib/plot/__tests__/line.test.js.map +0 -1
  56. package/lib/plot/__tests__/utils.js +0 -50
  57. package/lib/plot/__tests__/utils.js.map +0 -1
  58. package/lib/plot/common/__tests__/plot.test.js +0 -79
  59. package/lib/plot/common/__tests__/plot.test.js.map +0 -1
  60. package/lib/plot/common/__tests__/utils.js +0 -50
  61. package/lib/plot/common/__tests__/utils.js.map +0 -1
  62. package/src/__tests__/actions-button.test.jsx +0 -280
  63. package/src/__tests__/axes.test.jsx +0 -667
  64. package/src/__tests__/chart-setup.test.jsx +0 -532
  65. package/src/__tests__/chart-type.test.jsx +0 -23
  66. package/src/__tests__/chart.test.jsx +0 -86
  67. package/src/__tests__/grid.test.jsx +0 -37
  68. package/src/__tests__/key-legend.test.jsx +0 -223
  69. package/src/__tests__/mark-label.test.jsx +0 -33
  70. package/src/__tests__/tool-menu.test.jsx +0 -522
  71. package/src/__tests__/utils.js +0 -36
  72. package/src/__tests__/utils.test.js +0 -100
  73. package/src/bars/__tests__/bar.test.jsx +0 -45
  74. package/src/bars/__tests__/histogram.test.jsx +0 -45
  75. package/src/bars/__tests__/utils.js +0 -30
  76. package/src/bars/common/__tests__/bars.test.jsx +0 -68
  77. package/src/bars/common/__tests__/utils.js +0 -30
  78. package/src/common/__tests__/correctness-indicators.test.jsx +0 -720
  79. package/src/common/__tests__/drag-handle.test.jsx +0 -58
  80. package/src/common/__tests__/utils.js +0 -30
  81. package/src/line/__tests__/line-cross.test.jsx +0 -463
  82. package/src/line/__tests__/line-dot.test.jsx +0 -41
  83. package/src/line/__tests__/utils.js +0 -36
  84. package/src/line/common/__tests__/drag-handle.test.jsx +0 -62
  85. package/src/line/common/__tests__/line.test.jsx +0 -79
  86. package/src/line/common/__tests__/utils.js +0 -30
  87. package/src/plot/__tests__/dot.test.jsx +0 -344
  88. package/src/plot/__tests__/line.test.jsx +0 -375
  89. package/src/plot/__tests__/utils.js +0 -30
  90. package/src/plot/common/__tests__/plot.test.jsx +0 -69
  91. package/src/plot/common/__tests__/utils.js +0 -30
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":["scaleMock","exports","fn","jest","n","invert","graphProps","dmin","arguments","length","undefined","dmax","rmin","rmax","scale","x","y","snap","domain","min","max","step","range","size","width","height"],"sources":["../../../src/plot/__tests__/utils.js"],"sourcesContent":["export const scaleMock = () => {\n const fn = jest.fn((n) => n);\n fn.invert = jest.fn((n) => n);\n return fn;\n};\n\nexport const graphProps = (dmin = 0, dmax = 1, rmin = 0, rmax = 1) => ({\n scale: {\n x: scaleMock(),\n y: scaleMock(),\n },\n snap: {\n x: jest.fn((n) => n),\n y: jest.fn((n) => n),\n },\n domain: {\n min: dmin,\n max: dmax,\n step: 1,\n },\n range: {\n min: rmin,\n max: rmax,\n step: 1,\n },\n size: {\n width: 400,\n height: 400,\n },\n});\n"],"mappings":";;;;;;AAAO,IAAMA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,SAAZA,SAASA,CAAA,EAAS;EAC7B,IAAME,EAAE,GAAGC,IAAI,CAACD,EAAE,CAAC,UAACE,CAAC;IAAA,OAAKA,CAAC;EAAA,EAAC;EAC5BF,EAAE,CAACG,MAAM,GAAGF,IAAI,CAACD,EAAE,CAAC,UAACE,CAAC;IAAA,OAAKA,CAAC;EAAA,EAAC;EAC7B,OAAOF,EAAE;AACX,CAAC;AAEM,IAAMI,UAAU,GAAAL,OAAA,CAAAK,UAAA,GAAG,SAAbA,UAAUA,CAAA;EAAA,IAAIC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,IAAEG,IAAI,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,IAAEI,IAAI,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,IAAEK,IAAI,GAAAL,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,OAAM;IACrEM,KAAK,EAAE;MACLC,CAAC,EAAEf,SAAS,CAAC,CAAC;MACdgB,CAAC,EAAEhB,SAAS,CAAC;IACf,CAAC;IACDiB,IAAI,EAAE;MACJF,CAAC,EAAEZ,IAAI,CAACD,EAAE,CAAC,UAACE,CAAC;QAAA,OAAKA,CAAC;MAAA,EAAC;MACpBY,CAAC,EAAEb,IAAI,CAACD,EAAE,CAAC,UAACE,CAAC;QAAA,OAAKA,CAAC;MAAA;IACrB,CAAC;IACDc,MAAM,EAAE;MACNC,GAAG,EAAEZ,IAAI;MACTa,GAAG,EAAET,IAAI;MACTU,IAAI,EAAE;IACR,CAAC;IACDC,KAAK,EAAE;MACLH,GAAG,EAAEP,IAAI;MACTQ,GAAG,EAAEP,IAAI;MACTQ,IAAI,EAAE;IACR,CAAC;IACDE,IAAI,EAAE;MACJC,KAAK,EAAE,GAAG;MACVC,MAAM,EAAE;IACV;EACF,CAAC;AAAA,CAAC","ignoreList":[]}
@@ -1,79 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
- var _react = require("@testing-library/react");
7
- var _react2 = _interopRequireDefault(require("react"));
8
- var _plot = _interopRequireWildcard(require("../plot"));
9
- var _utils = require("./utils");
10
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
11
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
- describe('Plot', function () {
14
- var xBand = function xBand() {};
15
- xBand.bandwidth = function () {};
16
- var onChange = jest.fn();
17
- var renderComponent = function renderComponent(extras) {
18
- var defaults = {
19
- classes: {},
20
- className: 'className',
21
- graphProps: (0, _utils.graphProps)(),
22
- xBand: xBand,
23
- onChange: onChange,
24
- data: [{
25
- value: 0,
26
- label: '0'
27
- }]
28
- };
29
- var props = _objectSpread(_objectSpread({}, defaults), extras);
30
- return (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_plot["default"], props));
31
- };
32
- describe('rendering', function () {
33
- it('renders without crashing', function () {
34
- var _renderComponent = renderComponent(),
35
- container = _renderComponent.container;
36
- expect(container.firstChild).toBeInTheDocument();
37
- });
38
- });
39
- });
40
- describe('RawPlot', function () {
41
- var xBand = function xBand() {};
42
- xBand.bandwidth = function () {};
43
- var onChangeCategory = jest.fn();
44
- var renderComponent = function renderComponent(extras) {
45
- var defaults = {
46
- classes: {},
47
- className: 'className',
48
- graphProps: (0, _utils.graphProps)(),
49
- xBand: xBand,
50
- onChangeCategory: onChangeCategory,
51
- data: [],
52
- label: 'label',
53
- CustomBarElement: function CustomBarElement() {
54
- return /*#__PURE__*/_react2["default"].createElement("div", null);
55
- }
56
- };
57
- var props = _objectSpread(_objectSpread({}, defaults), extras);
58
- return (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_plot.RawPlot, props));
59
- };
60
- describe('rendering', function () {
61
- it('renders without crashing', function () {
62
- var _renderComponent2 = renderComponent(),
63
- container = _renderComponent2.container;
64
- expect(container.firstChild).toBeInTheDocument();
65
- });
66
- });
67
- describe('functionality', function () {
68
- it('calls onChangeCategory when drag completes with a value', function () {
69
- var _renderComponent3 = renderComponent(),
70
- container = _renderComponent3.container;
71
- // Testing drag functionality requires interaction - the component should
72
- // call onChangeCategory when a drag operation completes with a new value
73
- // This would typically be tested through user interactions rather than
74
- // directly calling instance methods
75
- expect(container.firstChild).toBeInTheDocument();
76
- });
77
- });
78
- });
79
- //# sourceMappingURL=plot.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plot.test.js","names":["_react","require","_react2","_interopRequireDefault","_plot","_interopRequireWildcard","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","describe","xBand","bandwidth","onChange","jest","fn","renderComponent","extras","defaults","classes","className","graphProps","data","value","label","props","render","createElement","it","_renderComponent","container","expect","firstChild","toBeInTheDocument","onChangeCategory","CustomBarElement","RawPlot","_renderComponent2","_renderComponent3"],"sources":["../../../../src/plot/common/__tests__/plot.test.jsx"],"sourcesContent":["import { render } from '@testing-library/react';\nimport React from 'react';\nimport Plot, { RawPlot } from '../plot';\nimport { graphProps } from './utils';\n\ndescribe('Plot', () => {\n const xBand = () => {};\n xBand.bandwidth = () => {};\n const onChange = jest.fn();\n\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n className: 'className',\n graphProps: graphProps(),\n xBand,\n onChange,\n data: [{ value: 0, label: '0' }],\n };\n const props = { ...defaults, ...extras };\n return render(<Plot {...props} />);\n };\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n\ndescribe('RawPlot', () => {\n const xBand = () => {};\n xBand.bandwidth = () => {};\n const onChangeCategory = jest.fn();\n\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n className: 'className',\n graphProps: graphProps(),\n xBand,\n onChangeCategory,\n data: [],\n label: 'label',\n CustomBarElement: () => <div />,\n };\n const props = { ...defaults, ...extras };\n return render(<RawPlot {...props} />);\n };\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('functionality', () => {\n it('calls onChangeCategory when drag completes with a value', () => {\n const { container } = renderComponent();\n // Testing drag functionality requires interaction - the component should\n // call onChangeCategory when a drag operation completes with a new value\n // This would typically be tested through user interactions rather than\n // directly calling instance methods\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAC,uBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAAqC,SAAAI,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,wBAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAmB,QAAApB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAgB,MAAA,CAAAI,IAAA,CAAArB,CAAA,OAAAiB,MAAA,CAAAK,qBAAA,QAAAhB,CAAA,GAAAW,MAAA,CAAAK,qBAAA,CAAAtB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAiB,MAAA,WAAApB,CAAA,WAAAc,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAAqB,UAAA,OAAAvB,CAAA,CAAAwB,IAAA,CAAAC,KAAA,CAAAzB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA0B,cAAA3B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAyB,SAAA,CAAAC,MAAA,EAAA1B,CAAA,UAAAF,CAAA,WAAA2B,SAAA,CAAAzB,CAAA,IAAAyB,SAAA,CAAAzB,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAH,MAAA,CAAAhB,CAAA,OAAA6B,OAAA,WAAA3B,CAAA,QAAA4B,gBAAA,aAAA/B,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAc,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAjC,CAAA,EAAAiB,MAAA,CAAAe,yBAAA,CAAA/B,CAAA,KAAAmB,OAAA,CAAAH,MAAA,CAAAhB,CAAA,GAAA6B,OAAA,WAAA3B,CAAA,IAAAc,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAc,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAErCkC,QAAQ,CAAC,MAAM,EAAE,YAAM;EACrB,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAA,EAAS,CAAC,CAAC;EACtBA,KAAK,CAACC,SAAS,GAAG,YAAM,CAAC,CAAC;EAC1B,IAAMC,QAAQ,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EAE1B,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,MAAM,EAAK;IAClC,IAAMC,QAAQ,GAAG;MACfC,OAAO,EAAE,CAAC,CAAC;MACXC,SAAS,EAAE,WAAW;MACtBC,UAAU,EAAE,IAAAA,iBAAU,EAAC,CAAC;MACxBV,KAAK,EAALA,KAAK;MACLE,QAAQ,EAARA,QAAQ;MACRS,IAAI,EAAE,CAAC;QAAEC,KAAK,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAI,CAAC;IACjC,CAAC;IACD,IAAMC,KAAK,GAAAtB,aAAA,CAAAA,aAAA,KAAQe,QAAQ,GAAKD,MAAM,CAAE;IACxC,OAAO,IAAAS,aAAM,eAACvD,OAAA,YAAAwD,aAAA,CAACtD,KAAA,WAAI,EAAKoD,KAAQ,CAAC,CAAC;EACpC,CAAC;EAEDf,QAAQ,CAAC,WAAW,EAAE,YAAM;IAC1BkB,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnC,IAAAC,gBAAA,GAAsBb,eAAe,CAAC,CAAC;QAA/Bc,SAAS,GAAAD,gBAAA,CAATC,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFvB,QAAQ,CAAC,SAAS,EAAE,YAAM;EACxB,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAA,EAAS,CAAC,CAAC;EACtBA,KAAK,CAACC,SAAS,GAAG,YAAM,CAAC,CAAC;EAC1B,IAAMsB,gBAAgB,GAAGpB,IAAI,CAACC,EAAE,CAAC,CAAC;EAElC,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,MAAM,EAAK;IAClC,IAAMC,QAAQ,GAAG;MACfC,OAAO,EAAE,CAAC,CAAC;MACXC,SAAS,EAAE,WAAW;MACtBC,UAAU,EAAE,IAAAA,iBAAU,EAAC,CAAC;MACxBV,KAAK,EAALA,KAAK;MACLuB,gBAAgB,EAAhBA,gBAAgB;MAChBZ,IAAI,EAAE,EAAE;MACRE,KAAK,EAAE,OAAO;MACdW,gBAAgB,EAAE,SAAlBA,gBAAgBA,CAAA;QAAA,oBAAQhE,OAAA,YAAAwD,aAAA,YAAM,CAAC;MAAA;IACjC,CAAC;IACD,IAAMF,KAAK,GAAAtB,aAAA,CAAAA,aAAA,KAAQe,QAAQ,GAAKD,MAAM,CAAE;IACxC,OAAO,IAAAS,aAAM,eAACvD,OAAA,YAAAwD,aAAA,CAACtD,KAAA,CAAA+D,OAAO,EAAKX,KAAQ,CAAC,CAAC;EACvC,CAAC;EAEDf,QAAQ,CAAC,WAAW,EAAE,YAAM;IAC1BkB,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnC,IAAAS,iBAAA,GAAsBrB,eAAe,CAAC,CAAC;QAA/Bc,SAAS,GAAAO,iBAAA,CAATP,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFvB,QAAQ,CAAC,eAAe,EAAE,YAAM;IAC9BkB,EAAE,CAAC,yDAAyD,EAAE,YAAM;MAClE,IAAAU,iBAAA,GAAsBtB,eAAe,CAAC,CAAC;QAA/Bc,SAAS,GAAAQ,iBAAA,CAATR,SAAS;MACjB;MACA;MACA;MACA;MACAC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,50 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.scaleMock = exports.graphProps = void 0;
7
- var scaleMock = exports.scaleMock = function scaleMock() {
8
- var fn = jest.fn(function (n) {
9
- return n;
10
- });
11
- fn.invert = jest.fn(function (n) {
12
- return n;
13
- });
14
- return fn;
15
- };
16
- var graphProps = exports.graphProps = function graphProps() {
17
- var dmin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
18
- var dmax = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
19
- var rmin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
20
- var rmax = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
21
- return {
22
- scale: {
23
- x: scaleMock(),
24
- y: scaleMock()
25
- },
26
- snap: {
27
- x: jest.fn(function (n) {
28
- return n;
29
- }),
30
- y: jest.fn(function (n) {
31
- return n;
32
- })
33
- },
34
- domain: {
35
- min: dmin,
36
- max: dmax,
37
- step: 1
38
- },
39
- range: {
40
- min: rmin,
41
- max: rmax,
42
- step: 1
43
- },
44
- size: {
45
- width: 400,
46
- height: 400
47
- }
48
- };
49
- };
50
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":["scaleMock","exports","fn","jest","n","invert","graphProps","dmin","arguments","length","undefined","dmax","rmin","rmax","scale","x","y","snap","domain","min","max","step","range","size","width","height"],"sources":["../../../../src/plot/common/__tests__/utils.js"],"sourcesContent":["export const scaleMock = () => {\n const fn = jest.fn((n) => n);\n fn.invert = jest.fn((n) => n);\n return fn;\n};\n\nexport const graphProps = (dmin = 0, dmax = 1, rmin = 0, rmax = 1) => ({\n scale: {\n x: scaleMock(),\n y: scaleMock(),\n },\n snap: {\n x: jest.fn((n) => n),\n y: jest.fn((n) => n),\n },\n domain: {\n min: dmin,\n max: dmax,\n step: 1,\n },\n range: {\n min: rmin,\n max: rmax,\n step: 1,\n },\n size: {\n width: 400,\n height: 400,\n },\n});\n"],"mappings":";;;;;;AAAO,IAAMA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,SAAZA,SAASA,CAAA,EAAS;EAC7B,IAAME,EAAE,GAAGC,IAAI,CAACD,EAAE,CAAC,UAACE,CAAC;IAAA,OAAKA,CAAC;EAAA,EAAC;EAC5BF,EAAE,CAACG,MAAM,GAAGF,IAAI,CAACD,EAAE,CAAC,UAACE,CAAC;IAAA,OAAKA,CAAC;EAAA,EAAC;EAC7B,OAAOF,EAAE;AACX,CAAC;AAEM,IAAMI,UAAU,GAAAL,OAAA,CAAAK,UAAA,GAAG,SAAbA,UAAUA,CAAA;EAAA,IAAIC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,IAAEG,IAAI,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,IAAEI,IAAI,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,IAAEK,IAAI,GAAAL,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,OAAM;IACrEM,KAAK,EAAE;MACLC,CAAC,EAAEf,SAAS,CAAC,CAAC;MACdgB,CAAC,EAAEhB,SAAS,CAAC;IACf,CAAC;IACDiB,IAAI,EAAE;MACJF,CAAC,EAAEZ,IAAI,CAACD,EAAE,CAAC,UAACE,CAAC;QAAA,OAAKA,CAAC;MAAA,EAAC;MACpBY,CAAC,EAAEb,IAAI,CAACD,EAAE,CAAC,UAACE,CAAC;QAAA,OAAKA,CAAC;MAAA;IACrB,CAAC;IACDc,MAAM,EAAE;MACNC,GAAG,EAAEZ,IAAI;MACTa,GAAG,EAAET,IAAI;MACTU,IAAI,EAAE;IACR,CAAC;IACDC,KAAK,EAAE;MACLH,GAAG,EAAEP,IAAI;MACTQ,GAAG,EAAEP,IAAI;MACTQ,IAAI,EAAE;IACR,CAAC;IACDE,IAAI,EAAE;MACJC,KAAK,EAAE,GAAG;MACVC,MAAM,EAAE;IACV;EACF,CAAC;AAAA,CAAC","ignoreList":[]}
@@ -1,280 +0,0 @@
1
- import React from 'react';
2
- import { fireEvent, render } from '@testing-library/react';
3
- import { createTheme, ThemeProvider } from '@mui/material/styles';
4
- import { ActionsButton } from '../actions-button';
5
-
6
- jest.mock('@pie-lib/translator', () => ({
7
- __esModule: true,
8
- default: {
9
- translator: {
10
- t: jest.fn((key) => {
11
- const translations = {
12
- 'charting.add': 'Add Category',
13
- 'charting.delete': 'Delete',
14
- 'charting.newLabel': 'New Category',
15
- };
16
- return translations[key] || key;
17
- }),
18
- },
19
- },
20
- }));
21
-
22
- let theme;
23
-
24
- beforeAll(() => {
25
- theme = createTheme();
26
- });
27
-
28
- describe('ActionsButton', () => {
29
- const addCategory = jest.fn();
30
- const deleteCategory = jest.fn();
31
-
32
- beforeEach(() => {
33
- jest.clearAllMocks();
34
- });
35
-
36
- const renderComponent = (extras = {}) => {
37
- const defaults = {
38
- addCategory,
39
- deleteCategory,
40
- categories: [],
41
- language: 'en',
42
- };
43
- const props = { ...defaults, ...extras };
44
- return render(
45
- <ThemeProvider theme={theme}>
46
- <ActionsButton {...props} />
47
- </ThemeProvider>,
48
- );
49
- };
50
-
51
- describe('rendering', () => {
52
- it('renders without crashing', () => {
53
- const { container } = renderComponent();
54
- expect(container).toBeInTheDocument();
55
- });
56
-
57
- it('renders Actions button', () => {
58
- const { getByText } = renderComponent();
59
- expect(getByText('Actions')).toBeInTheDocument();
60
- });
61
-
62
- it('renders with custom language', () => {
63
- const { container } = renderComponent({ language: 'es' });
64
- expect(container).toBeInTheDocument();
65
- });
66
-
67
- it('renders with empty categories', () => {
68
- const { container } = renderComponent({ categories: [] });
69
- expect(container).toBeInTheDocument();
70
- });
71
-
72
- it('renders with multiple categories', () => {
73
- const categories = [
74
- { label: 'A', deletable: true },
75
- { label: 'B', deletable: true },
76
- { label: 'C', deletable: false },
77
- ];
78
- const { container } = renderComponent({ categories });
79
- expect(container).toBeInTheDocument();
80
- });
81
- });
82
-
83
- describe('popover interactions', () => {
84
- it('opens popover when Actions button is clicked', () => {
85
- const { getByText } = renderComponent();
86
- const actionsButton = getByText('Actions');
87
-
88
- fireEvent.click(actionsButton);
89
-
90
- expect(getByText(/Add Category/i)).toBeInTheDocument();
91
- });
92
-
93
- it('closes popover when clicking outside', () => {
94
- const { getByText } = renderComponent();
95
- const actionsButton = getByText('Actions');
96
-
97
- fireEvent.click(actionsButton);
98
- expect(getByText(/Add Category/i)).toBeInTheDocument();
99
-
100
- const backdrop = document.querySelector('.MuiPopover-root');
101
- if (backdrop) {
102
- fireEvent.click(backdrop);
103
- }
104
- });
105
-
106
- it('has correct accessibility attributes', () => {
107
- const { getByText } = renderComponent();
108
- const actionsButton = getByText('Actions');
109
-
110
- expect(actionsButton).toHaveAttribute('role', 'button');
111
- expect(actionsButton).toHaveAttribute('tabIndex', '0');
112
- });
113
- });
114
-
115
- describe('add category functionality', () => {
116
- it('calls addCategory when add button is clicked', () => {
117
- const { getByText } = renderComponent();
118
-
119
- fireEvent.click(getByText('Actions'));
120
- fireEvent.click(getByText(/Add Category/i));
121
-
122
- expect(addCategory).toHaveBeenCalledTimes(1);
123
- });
124
-
125
- it('closes popover after adding category', () => {
126
- const { getByText } = renderComponent();
127
-
128
- fireEvent.click(getByText('Actions'));
129
- fireEvent.click(getByText(/Add Category/i));
130
-
131
- expect(addCategory).toHaveBeenCalled();
132
- });
133
- });
134
-
135
- describe('delete category functionality', () => {
136
- it('shows delete buttons for deletable categories', () => {
137
- const categories = [
138
- { label: 'Category A', deletable: true },
139
- { label: 'Category B', deletable: true },
140
- ];
141
- const { getByText } = renderComponent({ categories });
142
-
143
- fireEvent.click(getByText('Actions'));
144
-
145
- expect(getByText(/Delete <Category A>/i)).toBeInTheDocument();
146
- expect(getByText(/Delete <Category B>/i)).toBeInTheDocument();
147
- });
148
-
149
- it('does not show delete button for non-deletable categories', () => {
150
- const categories = [{ label: 'Category A', deletable: false }];
151
- const { getByText, queryByText } = renderComponent({ categories });
152
-
153
- fireEvent.click(getByText('Actions'));
154
-
155
- expect(queryByText(/Delete <Category A>/i)).not.toBeInTheDocument();
156
- });
157
-
158
- it('does not show delete button for categories with correctness', () => {
159
- const categories = [{ label: 'Category A', deletable: true, correctness: { value: 'correct' } }];
160
- const { getByText, queryByText } = renderComponent({ categories });
161
-
162
- fireEvent.click(getByText('Actions'));
163
-
164
- expect(queryByText(/Delete <Category A>/i)).not.toBeInTheDocument();
165
- });
166
-
167
- it('calls deleteCategory with correct index', () => {
168
- const categories = [
169
- { label: 'Category A', deletable: true },
170
- { label: 'Category B', deletable: true },
171
- ];
172
- const { getByText } = renderComponent({ categories });
173
-
174
- fireEvent.click(getByText('Actions'));
175
- fireEvent.click(getByText(/Delete <Category B>/i));
176
-
177
- expect(deleteCategory).toHaveBeenCalledWith(1);
178
- });
179
-
180
- it('closes popover after deleting category', () => {
181
- const categories = [{ label: 'Category A', deletable: true }];
182
- const { getByText } = renderComponent({ categories });
183
-
184
- fireEvent.click(getByText('Actions'));
185
- fireEvent.click(getByText(/Delete <Category A>/i));
186
-
187
- expect(deleteCategory).toHaveBeenCalled();
188
- });
189
-
190
- it('shows "New Category" for categories without label', () => {
191
- const categories = [{ label: '', deletable: true }];
192
- const { getByText } = renderComponent({ categories });
193
-
194
- fireEvent.click(getByText('Actions'));
195
-
196
- expect(getByText(/Delete <New Category>/i)).toBeInTheDocument();
197
- });
198
-
199
- it('handles deletion of multiple categories', () => {
200
- const categories = [
201
- { label: 'A', deletable: true },
202
- { label: 'B', deletable: true },
203
- { label: 'C', deletable: true },
204
- ];
205
- const { getByText } = renderComponent({ categories });
206
-
207
- fireEvent.click(getByText('Actions'));
208
-
209
- expect(getByText(/Delete <A>/i)).toBeInTheDocument();
210
- expect(getByText(/Delete <B>/i)).toBeInTheDocument();
211
- expect(getByText(/Delete <C>/i)).toBeInTheDocument();
212
- });
213
- });
214
-
215
- describe('componentWillUnmount', () => {
216
- it('cleans up state on unmount', () => {
217
- const { unmount, getByText } = renderComponent();
218
-
219
- fireEvent.click(getByText('Actions'));
220
- unmount();
221
-
222
- // Should not throw error
223
- expect(true).toBe(true);
224
- });
225
- });
226
-
227
- describe('edge cases', () => {
228
- it('handles empty categories array', () => {
229
- const { container } = renderComponent({ categories: [] });
230
- expect(container).toBeInTheDocument();
231
- });
232
-
233
- it('handles undefined language', () => {
234
- const { container } = renderComponent({ language: undefined });
235
- expect(container).toBeInTheDocument();
236
- });
237
-
238
- it('handles mixed deletable and correctness states', () => {
239
- const categories = [
240
- { label: 'A', deletable: true },
241
- { label: 'B', deletable: false },
242
- { label: 'C', deletable: true, correctness: { value: 'correct' } },
243
- { label: 'D', deletable: true },
244
- ];
245
- const { getByText } = renderComponent({ categories });
246
-
247
- fireEvent.click(getByText('Actions'));
248
-
249
- expect(getByText(/Delete <A>/i)).toBeInTheDocument();
250
- expect(getByText(/Delete <D>/i)).toBeInTheDocument();
251
- });
252
-
253
- it('handles categories with special characters in labels', () => {
254
- const categories = [{ label: '<>&"\'', deletable: true }];
255
- const { getByText } = renderComponent({ categories });
256
-
257
- fireEvent.click(getByText('Actions'));
258
-
259
- expect(getByText(/Delete </i)).toBeInTheDocument();
260
- });
261
-
262
- it('handles very long category labels', () => {
263
- const categories = [{ label: 'A'.repeat(100), deletable: true }];
264
- const { container } = renderComponent({ categories });
265
- expect(container).toBeInTheDocument();
266
- });
267
- });
268
-
269
- describe('popover positioning', () => {
270
- it('has correct anchor origin', () => {
271
- const { getByText, queryByText } = renderComponent();
272
-
273
- expect(queryByText(/\+ Add Category/i)).not.toBeInTheDocument();
274
-
275
- fireEvent.click(getByText('Actions'));
276
-
277
- expect(getByText(/\+ Add Category/i)).toBeInTheDocument();
278
- });
279
- });
280
- });