@cloudtower/eagle 0.32.40 → 0.32.42

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 (93) hide show
  1. package/dist/__test__/mockLineChart.d.ts +4 -0
  2. package/dist/cjs/core/Button/index.js +1 -2
  3. package/dist/cjs/core/ConfigProvider/index.js +5 -5
  4. package/dist/cjs/core/LineChart/LineChartActions.js +52 -0
  5. package/dist/cjs/core/LineChart/LineChartLegend.js +101 -0
  6. package/dist/cjs/core/LineChart/LineChartToolBar.js +56 -0
  7. package/dist/cjs/core/LineChart/Pointer.js +45 -0
  8. package/dist/cjs/core/LineChart/RenderChart.js +304 -0
  9. package/dist/cjs/core/LineChart/TooltipFormatter.js +70 -0
  10. package/dist/cjs/core/LineChart/index.js +66 -0
  11. package/dist/cjs/core/LineChart/styled.js +35 -0
  12. package/dist/cjs/core/LineChart/type.js +30 -0
  13. package/dist/cjs/core/LineChart/utils.js +394 -0
  14. package/dist/cjs/core/Loading/index.js +2 -2
  15. package/dist/cjs/core/Progress/progress.widgets.js +1 -1
  16. package/dist/cjs/core/Timeline/Timeline.widget.js +4 -4
  17. package/dist/cjs/core/Timeline/index.js +4 -4
  18. package/dist/cjs/core/index.js +9 -9
  19. package/dist/cjs/coreX/CheckPointList/index.js +3 -3
  20. package/dist/cjs/coreX/CircleLoading/index.js +4 -4
  21. package/dist/cjs/coreX/DateRangePicker/Calendar.js +1 -1
  22. package/dist/cjs/coreX/Dialogs/DeleteDialog/DeleteDialog.js +47 -0
  23. package/dist/cjs/coreX/Dialogs/RejectDialog/RejectDialog.js +87 -0
  24. package/dist/cjs/coreX/Dialogs/RejectDialog/RejectDialog.type.js +11 -0
  25. package/dist/cjs/coreX/Dialogs/SmallDialog.js +86 -0
  26. package/dist/cjs/index.js +168 -131
  27. package/dist/cjs/stats1.html +1 -1
  28. package/dist/cjs/utils/constants.js +1 -1
  29. package/dist/cjs/utils/tower.js +81 -0
  30. package/dist/components.css +2947 -2613
  31. package/dist/esm/core/Button/index.js +1 -2
  32. package/dist/esm/core/ConfigProvider/index.js +3 -3
  33. package/dist/esm/core/LineChart/LineChartActions.js +46 -0
  34. package/dist/esm/core/LineChart/LineChartLegend.js +91 -0
  35. package/dist/esm/core/LineChart/LineChartToolBar.js +50 -0
  36. package/dist/esm/core/LineChart/Pointer.js +38 -0
  37. package/dist/esm/core/LineChart/RenderChart.js +296 -0
  38. package/dist/esm/core/LineChart/TooltipFormatter.js +63 -0
  39. package/dist/esm/core/LineChart/index.js +57 -0
  40. package/dist/esm/core/LineChart/styled.js +25 -0
  41. package/dist/esm/core/LineChart/type.js +26 -0
  42. package/dist/esm/core/LineChart/utils.js +369 -0
  43. package/dist/esm/core/Loading/index.js +1 -1
  44. package/dist/esm/core/Progress/progress.widgets.js +1 -1
  45. package/dist/esm/core/Timeline/Timeline.widget.js +3 -3
  46. package/dist/esm/core/Timeline/index.js +3 -3
  47. package/dist/esm/coreX/CheckPointList/index.js +3 -3
  48. package/dist/esm/coreX/CircleLoading/index.js +3 -3
  49. package/dist/esm/coreX/DateRangePicker/Calendar.js +1 -1
  50. package/dist/esm/coreX/Dialogs/DeleteDialog/DeleteDialog.js +41 -0
  51. package/dist/esm/coreX/Dialogs/RejectDialog/RejectDialog.js +81 -0
  52. package/dist/esm/coreX/Dialogs/RejectDialog/RejectDialog.type.js +9 -0
  53. package/dist/esm/coreX/Dialogs/SmallDialog.js +80 -0
  54. package/dist/esm/index.js +10 -2
  55. package/dist/esm/stats1.html +1 -1
  56. package/dist/esm/utils/constants.js +1 -1
  57. package/dist/esm/utils/tower.js +77 -1
  58. package/dist/src/antd.d.ts +1 -1
  59. package/dist/src/core/ConfigProvider/index.d.ts +2 -2
  60. package/dist/src/core/LineChart/LineChartActions.d.ts +7 -0
  61. package/dist/src/core/LineChart/LineChartLegend.d.ts +18 -0
  62. package/dist/src/core/LineChart/LineChartToolBar.d.ts +20 -0
  63. package/dist/src/core/LineChart/Pointer.d.ts +6 -0
  64. package/dist/src/core/LineChart/RenderChart.d.ts +45 -0
  65. package/dist/src/core/LineChart/TooltipFormatter.d.ts +10 -0
  66. package/dist/src/core/LineChart/__test__/h5_css.test.d.ts +1 -0
  67. package/dist/src/core/LineChart/index.d.ts +8 -0
  68. package/dist/src/core/LineChart/styled.d.ts +12 -0
  69. package/dist/src/core/LineChart/type.d.ts +191 -0
  70. package/dist/src/core/LineChart/utils.d.ts +56 -0
  71. package/dist/src/core/Metric/metric.d.ts +1 -1
  72. package/dist/src/core/Timeline/Timeline.type.d.ts +2 -2
  73. package/dist/src/core/index.d.ts +4 -1
  74. package/dist/src/coreX/CheckPointList/index.d.ts +1 -1
  75. package/dist/src/coreX/Dialogs/DeleteDialog/DeleteDialog.d.ts +3 -0
  76. package/dist/src/coreX/Dialogs/DeleteDialog/DeleteDialog.type.d.ts +19 -0
  77. package/dist/src/coreX/Dialogs/DeleteDialog/index.d.ts +2 -0
  78. package/dist/src/coreX/Dialogs/RejectDialog/RejectDialog.d.ts +3 -0
  79. package/dist/src/coreX/Dialogs/RejectDialog/RejectDialog.type.d.ts +59 -0
  80. package/dist/src/coreX/Dialogs/RejectDialog/index.d.ts +2 -0
  81. package/dist/src/coreX/Dialogs/SmallDialog.d.ts +31 -0
  82. package/dist/src/coreX/Dialogs/index.d.ts +3 -0
  83. package/dist/src/coreX/index.d.ts +2 -1
  84. package/dist/src/utils/tower.d.ts +12 -0
  85. package/dist/stories/docs/core/LineChart.stories.d.ts +16 -0
  86. package/dist/stories/docs/core/Timeline.stories.d.ts +2 -2
  87. package/dist/stories/docs/coreX/CheckPointList.stories.d.ts +1 -1
  88. package/dist/stories/docs/coreX/Dialogs/DeleteDialog.stories.d.ts +37 -0
  89. package/dist/stories/docs/coreX/Dialogs/RejectDialog.stories.d.ts +89 -0
  90. package/dist/stories/docs/coreX/Show.stories.d.ts +2 -2
  91. package/dist/style.css +2672 -2377
  92. package/dist/variables.scss +2 -0
  93. package/package.json +5 -6
@@ -0,0 +1,4 @@
1
+ import { ILineChartMetric } from "../src/core/LineChart/type";
2
+ declare const mockMetric2: ILineChartMetric;
3
+ declare const mockMetric: ILineChartMetric;
4
+ export { mockMetric, mockMetric2 };
@@ -37,7 +37,6 @@ var __objRest = (source, exclude) => {
37
37
  return target;
38
38
  };
39
39
  const ButtonStyle = "E_b1wx3t3t";
40
- const NoPadding = "E_n7k2c6r";
41
40
  const isAntdButtonTypes = type => {
42
41
  return Boolean(type && ["default", "primary", "ghost", "dashed", "link", "text"].includes(type));
43
42
  };
@@ -62,7 +61,7 @@ const Button = React__default.default.forwardRef((props, ref) => {
62
61
  const onlyIcon = !children && (prefixIcon || suffixIcon);
63
62
  return /* @__PURE__ */React__default.default.createElement(antd.Button, __spreadValues({
64
63
  ref,
65
- className: cs__default.default(className, ButtonStyle, type === "link" && NoPadding, size === "large" && index.Typo.Label.l1_regular_title, size === "middle" && index.Typo.Label.l2_regular_title, size === "small" && index.Typo.Label.l3_regular_title, type && `ant-btn-${type}`, onlyIcon && "ant-btn-icon-only"),
64
+ className: cs__default.default(className, ButtonStyle, size === "large" && index.Typo.Label.l1_regular_title, size === "middle" && index.Typo.Label.l2_regular_title, size === "small" && index.Typo.Label.l3_regular_title, type && `ant-btn-${type}`, onlyIcon && "ant-btn-icon-only"),
66
65
  type: isAntdButtonTypes(type) ? type : void 0,
67
66
  onMouseEnter: e => {
68
67
  onMouseEnter == null ? void 0 : onMouseEnter(e);
@@ -2,24 +2,24 @@
2
2
 
3
3
  var useParrotTranslation = require('../../hooks/useParrotTranslation.js');
4
4
  var antd = require('antd');
5
- var antd5 = require('antd5');
6
- var React = require('react');
7
5
  var enUS = require('antd/lib/locale/en_US');
8
6
  var zhCN = require('antd/lib/locale/zh_CN');
7
+ var antd5 = require('antd5');
9
8
  var antd5enUS = require('antd5/lib/locale/en_US');
10
9
  var antd5zhCN = require('antd5/lib/locale/zh_CN');
11
- var moment = require('moment');
12
10
  var dayjs = require('dayjs');
11
+ var moment = require('moment');
12
+ var React = require('react');
13
13
 
14
14
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
15
 
16
- var React__default = /*#__PURE__*/_interopDefault(React);
17
16
  var enUS__default = /*#__PURE__*/_interopDefault(enUS);
18
17
  var zhCN__default = /*#__PURE__*/_interopDefault(zhCN);
19
18
  var antd5enUS__default = /*#__PURE__*/_interopDefault(antd5enUS);
20
19
  var antd5zhCN__default = /*#__PURE__*/_interopDefault(antd5zhCN);
21
- var moment__default = /*#__PURE__*/_interopDefault(moment);
22
20
  var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
21
+ var moment__default = /*#__PURE__*/_interopDefault(moment);
22
+ var React__default = /*#__PURE__*/_interopDefault(React);
23
23
 
24
24
  var __defProp = Object.defineProperty;
25
25
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var iconsReact = require('@cloudtower/icons-react');
4
+ var index = require('../Button/index.js');
5
+ var React = require('react');
6
+ var index$1 = require('../Icon/index.js');
7
+ var Antd5Dropdown = require('../Antd5Dropdown/Antd5Dropdown.js');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefault(React);
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
15
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
16
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
17
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value
22
+ }) : obj[key] = value;
23
+ var __spreadValues = (a, b) => {
24
+ for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
25
+ if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
26
+ if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
27
+ }
28
+ return a;
29
+ };
30
+ const actionStyle = "E_a9y3flr";
31
+ const actionStyleLabel = "E_a1njc627";
32
+ const LineChartActions = props => {
33
+ const {
34
+ label,
35
+ dropdownProps
36
+ } = props;
37
+ return /* @__PURE__ */React__default.default.createElement("div", {
38
+ className: "metric-extra"
39
+ }, /* @__PURE__ */React__default.default.createElement("div", {
40
+ className: actionStyleLabel
41
+ }, label), dropdownProps && /* @__PURE__ */React__default.default.createElement(Antd5Dropdown.Antd5Dropdown, __spreadValues({}, dropdownProps), /* @__PURE__ */React__default.default.createElement(index, {
42
+ size: "small",
43
+ type: "tertiary",
44
+ className: actionStyle,
45
+ prefixIcon: /* @__PURE__ */React__default.default.createElement(index$1, {
46
+ src: iconsReact.MoreEllipsis316BoldSecondaryIcon
47
+ })
48
+ })));
49
+ };
50
+ var LineChartActions$1 = LineChartActions;
51
+
52
+ module.exports = LineChartActions$1;
@@ -0,0 +1,101 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var iconsReact = require('@cloudtower/icons-react');
6
+ var index$1 = require('../Icon/index.js');
7
+ var styled = require('./styled.js');
8
+ var index = require('../Overflow/index.js');
9
+ var index$2 = require('../Truncate/index.js');
10
+ var antd = require('antd');
11
+ var cs = require('classnames');
12
+ var React = require('react');
13
+ var Antd5Dropdown = require('../Antd5Dropdown/Antd5Dropdown.js');
14
+
15
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
16
+
17
+ var cs__default = /*#__PURE__*/_interopDefault(cs);
18
+ var React__default = /*#__PURE__*/_interopDefault(React);
19
+
20
+ const LineChartColorBlock = ({ background, borderd = false }) => /* @__PURE__ */ React__default.default.createElement(
21
+ "div",
22
+ {
23
+ className: cs__default.default(
24
+ styled.LineChartColorBlockStyle,
25
+ "color-block",
26
+ borderd && "borderd"
27
+ ),
28
+ style: { background }
29
+ }
30
+ );
31
+ const LineChartLegend = (props) => {
32
+ const { deselected, onClick, legends, onHover, hovering, hovereringSelf } = props;
33
+ const [isDropdownOpen, setIsDropdownOpen] = React__default.default.useState(false);
34
+ return /* @__PURE__ */ React__default.default.createElement(
35
+ index.ExtraOverflow,
36
+ {
37
+ className: styled.LegendStyle,
38
+ extraEl: (end) => /* @__PURE__ */ React__default.default.createElement(
39
+ Antd5Dropdown.Antd5Dropdown,
40
+ {
41
+ overlayClassName: styled.ExtraResource,
42
+ trigger: ["click"],
43
+ onVisibleChange: setIsDropdownOpen,
44
+ overlay: /* @__PURE__ */ React__default.default.createElement(antd.Menu, null, legends.slice(end).map((legend, idx) => {
45
+ return /* @__PURE__ */ React__default.default.createElement(
46
+ antd.Menu.Item,
47
+ {
48
+ className: cs__default.default(
49
+ styled.LegendItemsStyleDropdown,
50
+ deselected.includes(legend.id) && "deselected",
51
+ hovering.includes(legend.id) && "hovering",
52
+ hovereringSelf.includes(legend.id) && "hoverering-self"
53
+ ),
54
+ key: legend.id,
55
+ onClick: () => onClick(legend.id),
56
+ onMouseEnter: () => onHover("enter", legend.id),
57
+ onMouseLeave: () => onHover("leave", legend.id)
58
+ },
59
+ /* @__PURE__ */ React__default.default.createElement(LineChartColorBlock, { background: legend.color }),
60
+ /* @__PURE__ */ React__default.default.createElement("span", null, legend.name)
61
+ );
62
+ }))
63
+ },
64
+ /* @__PURE__ */ React__default.default.createElement(
65
+ index$1,
66
+ {
67
+ alt: "arrowChevronDownSmall16Secondary",
68
+ className: "dropdown-trigger",
69
+ src: iconsReact.ArrowChevronDown16SecondaryIcon,
70
+ hoverSrc: iconsReact.ArrowChevronDown16BlueIcon,
71
+ activeSrc: iconsReact.ArrowChevronUp16BlueIcon,
72
+ active: isDropdownOpen
73
+ }
74
+ )
75
+ ),
76
+ els: legends.map((legend) => {
77
+ return /* @__PURE__ */ React__default.default.createElement(
78
+ "div",
79
+ {
80
+ className: cs__default.default(
81
+ styled.LegendItemsStyle,
82
+ deselected.includes(legend.id) && "deselected",
83
+ hovering.includes(legend.id) && "hovering",
84
+ hovereringSelf.includes(legend.id) && "hoverering-self"
85
+ ),
86
+ key: legend.id,
87
+ onMouseEnter: () => onHover("enter", legend.id),
88
+ onMouseLeave: () => onHover("leave", legend.id),
89
+ onClick: () => onClick(legend.id)
90
+ },
91
+ /* @__PURE__ */ React__default.default.createElement(LineChartColorBlock, { background: legend.color }),
92
+ /* @__PURE__ */ React__default.default.createElement("span", null, /* @__PURE__ */ React__default.default.createElement(index$2, { text: legend.name, len: 50, backLen: 20 }))
93
+ );
94
+ })
95
+ }
96
+ );
97
+ };
98
+ var LineChartLegend$1 = LineChartLegend;
99
+
100
+ exports.LineChartColorBlock = LineChartColorBlock;
101
+ exports.default = LineChartLegend$1;
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ var LineChartActions = require('./LineChartActions.js');
4
+ var LineChartLegend = require('./LineChartLegend.js');
5
+ var React = require('react');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefault(React);
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
15
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
16
+ var __spreadValues = (a, b) => {
17
+ for (var prop in b || (b = {}))
18
+ if (__hasOwnProp.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ if (__getOwnPropSymbols)
21
+ for (var prop of __getOwnPropSymbols(b)) {
22
+ if (__propIsEnum.call(b, prop))
23
+ __defNormalProp(a, prop, b[prop]);
24
+ }
25
+ return a;
26
+ };
27
+ const LineChartToolBar = ({
28
+ showLegend,
29
+ streams,
30
+ metricName,
31
+ deselected,
32
+ hovering,
33
+ onLegendClick,
34
+ onLegendHover,
35
+ legends,
36
+ actionsProps,
37
+ dropdownProps,
38
+ hoveringSelf
39
+ }) => {
40
+ return /* @__PURE__ */ React__default.default.createElement("div", { className: "metric-toolbar" }, showLegend && /* @__PURE__ */ React__default.default.createElement(
41
+ LineChartLegend.default,
42
+ {
43
+ streams,
44
+ metricName,
45
+ deselected,
46
+ hovering,
47
+ onClick: onLegendClick,
48
+ legends,
49
+ onHover: onLegendHover,
50
+ hovereringSelf: hoveringSelf
51
+ }
52
+ ), (actionsProps == null ? void 0 : actionsProps.show) && /* @__PURE__ */ React__default.default.createElement(LineChartActions, __spreadValues({ dropdownProps }, actionsProps)));
53
+ };
54
+ var LineChartToolBar$1 = LineChartToolBar;
55
+
56
+ module.exports = LineChartToolBar$1;
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var index = require('../KitStoreProvider/index.js');
4
+ var _ = require('lodash');
5
+ var React = require('react');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var ___default = /*#__PURE__*/_interopDefault(_);
10
+ var React__default = /*#__PURE__*/_interopDefault(React);
11
+
12
+ const Pointer = ({ uuid = "", metricWidth }) => {
13
+ const pointers = index.useKitSelector(
14
+ (state) => ___default.default.get(state, "chart.pointers")
15
+ );
16
+ if (!(pointers == null ? void 0 : pointers[uuid])) {
17
+ return null;
18
+ }
19
+ const { left = 0, text } = pointers[uuid];
20
+ let dis = -99999999;
21
+ const threshold = 50;
22
+ if (metricWidth) {
23
+ if (left <= threshold) {
24
+ dis = threshold;
25
+ } else if (left >= metricWidth - threshold) {
26
+ dis = metricWidth - threshold;
27
+ } else {
28
+ dis = left;
29
+ }
30
+ }
31
+ return /* @__PURE__ */ React__default.default.createElement(
32
+ "div",
33
+ {
34
+ style: {
35
+ transform: `translate(${dis}px)`,
36
+ position: "absolute",
37
+ whiteSpace: "nowrap"
38
+ }
39
+ },
40
+ /* @__PURE__ */ React__default.default.createElement("div", { className: "pointer-wrapper" }, text)
41
+ );
42
+ };
43
+ var Pointer$1 = Pointer;
44
+
45
+ module.exports = Pointer$1;
@@ -0,0 +1,304 @@
1
+ 'use strict';
2
+
3
+ var index = require('../KitStoreProvider/index.js');
4
+ var LineChartLegend = require('./LineChartLegend.js');
5
+ var styled = require('./styled.js');
6
+ var type = require('./type.js');
7
+ var antd = require('antd');
8
+ var utils = require('./utils.js');
9
+ var TooltipFormatter = require('./TooltipFormatter.js');
10
+ var useParrotTranslation = require('../../hooks/useParrotTranslation.js');
11
+ var cs = require('classnames');
12
+ var dayjs = require('dayjs');
13
+ var React = require('react');
14
+ var recharts = require('recharts');
15
+ var LineChartToolBar = require('./LineChartToolBar.js');
16
+ var chart = require('../../store/chart.js');
17
+
18
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
19
+
20
+ var cs__default = /*#__PURE__*/_interopDefault(cs);
21
+ var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
22
+ var React__default = /*#__PURE__*/_interopDefault(React);
23
+
24
+ var __defProp = Object.defineProperty;
25
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
26
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
27
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
28
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
29
+ var __spreadValues = (a, b) => {
30
+ for (var prop in b || (b = {}))
31
+ if (__hasOwnProp.call(b, prop))
32
+ __defNormalProp(a, prop, b[prop]);
33
+ if (__getOwnPropSymbols)
34
+ for (var prop of __getOwnPropSymbols(b)) {
35
+ if (__propIsEnum.call(b, prop))
36
+ __defNormalProp(a, prop, b[prop]);
37
+ }
38
+ return a;
39
+ };
40
+ const RenderChart = (props) => {
41
+ const {
42
+ metricName,
43
+ showLegend,
44
+ syncId,
45
+ showXAxis,
46
+ yAxisAlign,
47
+ height,
48
+ type: type$1,
49
+ mode = "legend",
50
+ dropdownProps,
51
+ onLabelsChange,
52
+ metric,
53
+ yAxisProps,
54
+ xAxisProps,
55
+ actionsProps,
56
+ tooltipProps,
57
+ width,
58
+ dateRange = [dayjs__default.default(), dayjs__default.default()],
59
+ emptyText,
60
+ emptyIcon
61
+ } = props;
62
+ const { t } = useParrotTranslation();
63
+ const dispatch = index.useKitDispatch();
64
+ const [deselected, setDeselected] = React.useState([]);
65
+ const [hovering, setHovering] = React.useState([]);
66
+ const [hoveringSelf, setHoveringSelf] = React.useState([]);
67
+ const [tempDeselected, setTempDeselected] = React.useState([]);
68
+ const streams = React.useMemo(() => metric.sample_streams, [metric]);
69
+ const legends = React.useMemo(() => {
70
+ return metric.sample_streams.map((stream) => stream.legend);
71
+ }, [metric.sample_streams]);
72
+ const areaChartData = React.useMemo(
73
+ () => utils.convertLineChartDataStruct(streams.map((stream) => stream.points)),
74
+ [streams]
75
+ );
76
+ const yDomain = utils.getYAxisDomain(areaChartData, type$1, metric.unit);
77
+ const xDomain = utils.getLineChartXAxisDomain(dateRange, dateRange[1].valueOf());
78
+ const xTicks = utils.lineChartXaxisCal(xDomain[1], dateRange, width);
79
+ const onLegendClick = React.useCallback(
80
+ (id) => {
81
+ setDeselected((prev) => {
82
+ var _a;
83
+ const currentDeselected = tempDeselected.length ? tempDeselected : prev;
84
+ if (currentDeselected.length === 0) {
85
+ return streams.map((stream) => stream.legend.id).filter((legendId) => legendId !== id);
86
+ }
87
+ if (currentDeselected.length === streams.length - 1) {
88
+ const highlightedId = (_a = streams.find(
89
+ (stream) => !currentDeselected.includes(stream.legend.id)
90
+ )) == null ? void 0 : _a.legend.id;
91
+ if (id === highlightedId) {
92
+ return [];
93
+ } else {
94
+ return currentDeselected.filter(
95
+ (deselectedId) => deselectedId !== id
96
+ );
97
+ }
98
+ }
99
+ const isHighlighted = !currentDeselected.includes(id);
100
+ if (isHighlighted) {
101
+ return [...currentDeselected, id];
102
+ } else {
103
+ return currentDeselected.filter(
104
+ (deselectedId) => deselectedId !== id
105
+ );
106
+ }
107
+ });
108
+ if (tempDeselected.length) {
109
+ setTempDeselected([]);
110
+ }
111
+ },
112
+ [streams, tempDeselected]
113
+ );
114
+ const onLegendHover = React.useCallback(
115
+ (method, id) => {
116
+ if (method === "enter") {
117
+ if (deselected.length) {
118
+ setTempDeselected(deselected);
119
+ if (deselected.includes(id)) {
120
+ setDeselected(
121
+ streams.map((stream) => stream.legend.id).filter(
122
+ (legendId) => legendId !== id && deselected.includes(legendId)
123
+ )
124
+ );
125
+ setHovering(
126
+ streams.map((stream) => stream.legend.id).filter((legendId) => legendId === id)
127
+ );
128
+ setHoveringSelf(
129
+ streams.map((stream) => stream.legend.id).filter((legendId) => legendId === id)
130
+ );
131
+ } else {
132
+ setDeselected([]);
133
+ setHovering(
134
+ streams.map((stream) => stream.legend.id).filter((legendId) => legendId !== id)
135
+ );
136
+ }
137
+ } else {
138
+ setHovering(
139
+ streams.map((stream) => stream.legend.id).filter((legendId) => legendId !== id)
140
+ );
141
+ }
142
+ } else {
143
+ if (tempDeselected.length) {
144
+ setDeselected(tempDeselected);
145
+ setTempDeselected([]);
146
+ }
147
+ setHovering([]);
148
+ setHoveringSelf([]);
149
+ }
150
+ },
151
+ [deselected, streams, tempDeselected]
152
+ );
153
+ const hidePointer = React.useCallback(() => {
154
+ dispatch({
155
+ type: chart.ChartActions.SET_POINTER,
156
+ payload: { visible: false, uuid: syncId }
157
+ });
158
+ }, [dispatch, syncId]);
159
+ const handleMouseMove = React.useCallback(
160
+ (e) => {
161
+ var _a;
162
+ if (e.isTooltipActive) {
163
+ const { chartX, activePayload } = e;
164
+ if (!((_a = activePayload == null ? void 0 : activePayload[0]) == null ? void 0 : _a.payload)) {
165
+ return;
166
+ }
167
+ dispatch({
168
+ type: chart.ChartActions.SET_POINTER,
169
+ payload: {
170
+ uuid: syncId,
171
+ visible: true,
172
+ left: chartX,
173
+ text: dayjs__default.default(Number(activePayload[0].payload.t)).format(
174
+ "MM/DD HH:mm:ss"
175
+ ),
176
+ value: activePayload[0].payload.v
177
+ }
178
+ });
179
+ }
180
+ },
181
+ [dispatch, syncId]
182
+ );
183
+ if (!(streams == null ? void 0 : streams.length) || streams.every((stream) => {
184
+ var _a;
185
+ return !((_a = stream.points) == null ? void 0 : _a.length);
186
+ })) {
187
+ return /* @__PURE__ */ React__default.default.createElement("div", { className: styled.MetricLegendTabStyle }, /* @__PURE__ */ React__default.default.createElement("div", { className: "name-toolbar" }, /* @__PURE__ */ React__default.default.createElement(
188
+ LineChartLegend.default,
189
+ {
190
+ streams,
191
+ metricName,
192
+ deselected,
193
+ hovering,
194
+ hovereringSelf: hoveringSelf,
195
+ onClick: onLegendClick,
196
+ onHover: onLegendHover,
197
+ legends
198
+ }
199
+ )), /* @__PURE__ */ React__default.default.createElement("div", { className: cs__default.default("content", mode === "single" && "single-content") }, /* @__PURE__ */ React__default.default.createElement(
200
+ antd.Empty,
201
+ {
202
+ description: emptyText || t("metric.empty"),
203
+ image: emptyIcon ? emptyIcon : null,
204
+ imageStyle: emptyIcon ? {} : { display: "none" }
205
+ }
206
+ )));
207
+ }
208
+ return /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement(
209
+ LineChartToolBar,
210
+ {
211
+ showLegend,
212
+ streams,
213
+ metricName,
214
+ deselected,
215
+ hovering,
216
+ hoveringSelf,
217
+ onLegendClick,
218
+ legends,
219
+ actionsProps,
220
+ dropdownProps,
221
+ onLegendHover
222
+ }
223
+ ), /* @__PURE__ */ React__default.default.createElement(recharts.ResponsiveContainer, { height }, /* @__PURE__ */ React__default.default.createElement(
224
+ recharts.AreaChart,
225
+ {
226
+ style: { backgroundColor: "white" },
227
+ margin: showLegend ? { top: 10, left: -20, right: 10, bottom: 0 } : { top: 20, left: -20, right: 10, bottom: 5 },
228
+ data: areaChartData,
229
+ syncId,
230
+ onMouseLeave: hidePointer,
231
+ onMouseMove: handleMouseMove
232
+ },
233
+ /* @__PURE__ */ React__default.default.createElement(
234
+ recharts.XAxis,
235
+ __spreadValues({
236
+ hide: !showXAxis,
237
+ dataKey: "t",
238
+ axisLine: false,
239
+ tickLine: false,
240
+ type: "number",
241
+ ticks: xTicks,
242
+ domain: xDomain,
243
+ tickFormatter: (tick) => utils.lineChartTickFormatter(tick, dateRange)
244
+ }, xAxisProps)
245
+ ),
246
+ /* @__PURE__ */ React__default.default.createElement(
247
+ recharts.YAxis,
248
+ __spreadValues({
249
+ width: 200,
250
+ mirror: true,
251
+ axisLine: false,
252
+ tickLine: false,
253
+ allowDecimals: false,
254
+ domain: yDomain,
255
+ orientation: yAxisAlign,
256
+ tick: {
257
+ dx: 20,
258
+ dy: 16
259
+ },
260
+ ticks: [yDomain[1] / 2, yDomain[1]],
261
+ tickFormatter: (tick) => utils.lineChartYaxisTickFormatter(tick, metric.unit)
262
+ }, yAxisProps)
263
+ ),
264
+ /* @__PURE__ */ React__default.default.createElement(
265
+ recharts.Tooltip,
266
+ __spreadValues({
267
+ content: tooltipProps.format && /* @__PURE__ */ React__default.default.createElement(
268
+ TooltipFormatter,
269
+ {
270
+ deselected,
271
+ legends,
272
+ format: tooltipProps.format
273
+ }
274
+ )
275
+ }, tooltipProps)
276
+ ),
277
+ streams.map((item, index) => {
278
+ if (deselected.includes(item.legend.id)) {
279
+ return null;
280
+ }
281
+ return /* @__PURE__ */ React__default.default.createElement(
282
+ recharts.Area,
283
+ {
284
+ key: index,
285
+ dataKey: `v${index}`,
286
+ stackId: type$1 === type.ILineChartGraphType.Stack ? "stack" : void 0,
287
+ stroke: item.legend.stroke ? `${item.legend.color}1A` : item.legend.color,
288
+ fill: item.legend.fill,
289
+ isAnimationActive: false,
290
+ activeDot: {
291
+ stroke: item.legend.color,
292
+ r: 4,
293
+ strokeWidth: 2,
294
+ fill: "white"
295
+ },
296
+ opacity: hovering.includes(item.legend.id) ? 0.3 : 1
297
+ }
298
+ );
299
+ })
300
+ )));
301
+ };
302
+ var RenderChart$1 = RenderChart;
303
+
304
+ module.exports = RenderChart$1;
@@ -0,0 +1,70 @@
1
+ 'use strict';
2
+
3
+ var react = require('@linaria/react');
4
+ var LineChartLegend = require('./LineChartLegend.js');
5
+ var styled = require('./styled.js');
6
+ var React = require('react');
7
+ var index = require('../Typo/index.js');
8
+ var dayjs = require('dayjs');
9
+
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefault(React);
13
+ var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
14
+
15
+ var __defProp = Object.defineProperty;
16
+ var __defProps = Object.defineProperties;
17
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
18
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
19
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
20
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
21
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value
26
+ }) : obj[key] = value;
27
+ var __spreadValues = (a, b) => {
28
+ for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
29
+ if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
30
+ if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
31
+ }
32
+ return a;
33
+ };
34
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
35
+ const TooltipTitle = /*#__PURE__*/react.styled('div')({
36
+ name: "TooltipTitle",
37
+ class: "E_t1616y1o",
38
+ propsAsIs: false
39
+ });
40
+ const TooltipFormatter = props => {
41
+ const {
42
+ active,
43
+ payload,
44
+ deselected,
45
+ legends,
46
+ format
47
+ } = props;
48
+ if (!active || !(payload == null ? void 0 : payload.length)) {
49
+ return null;
50
+ }
51
+ return /* @__PURE__ */React__default.default.createElement(styled.TooltipWrapper, null, /* @__PURE__ */React__default.default.createElement(TooltipTitle, {
52
+ className: index.Typo.Label.l4_bold_title
53
+ }, dayjs__default.default(Number(payload[0].payload.t)).format("MM/DD HH:mm:ss")), payload.map((item, index) => {
54
+ return __spreadProps(__spreadValues({}, item), {
55
+ legend: legends[index]
56
+ });
57
+ }).sort((a, b) => b.value - a.value).map(item => {
58
+ return deselected.includes(item.legend.id) ? null : /* @__PURE__ */React__default.default.createElement(styled.TooltipColumn, {
59
+ key: item.legend.id
60
+ }, /* @__PURE__ */React__default.default.createElement("div", null, /* @__PURE__ */React__default.default.createElement(LineChartLegend.LineChartColorBlock, {
61
+ background: item.legend.color,
62
+ borderd: true
63
+ }), item.legend.name), /* @__PURE__ */React__default.default.createElement("div", {
64
+ className: "column-value"
65
+ }, format(item)));
66
+ }));
67
+ };
68
+ var TooltipFormatter$1 = TooltipFormatter;
69
+
70
+ module.exports = TooltipFormatter$1;