@cloudtower/eagle 0.32.38 → 0.32.41
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/dist/__test__/mockLineChart.d.ts +4 -0
- package/dist/cjs/core/ConfigProvider/index.js +5 -5
- package/dist/cjs/core/LineChart/LineChartActions.js +52 -0
- package/dist/cjs/core/LineChart/LineChartLegend.js +101 -0
- package/dist/cjs/core/LineChart/LineChartToolBar.js +56 -0
- package/dist/cjs/core/LineChart/Pointer.js +45 -0
- package/dist/cjs/core/LineChart/RenderChart.js +304 -0
- package/dist/cjs/core/LineChart/TooltipFormatter.js +70 -0
- package/dist/cjs/core/LineChart/index.js +66 -0
- package/dist/cjs/core/LineChart/styled.js +35 -0
- package/dist/cjs/core/LineChart/type.js +30 -0
- package/dist/cjs/core/LineChart/utils.js +394 -0
- package/dist/cjs/core/Loading/index.js +2 -2
- package/dist/cjs/core/Progress/progress.widgets.js +1 -1
- package/dist/cjs/core/Timeline/Timeline.widget.js +4 -4
- package/dist/cjs/core/Timeline/index.js +4 -4
- package/dist/cjs/core/index.js +9 -9
- package/dist/cjs/coreX/CheckPointList/index.js +3 -3
- package/dist/cjs/coreX/CircleLoading/index.js +4 -4
- package/dist/cjs/coreX/DateRangePicker/Calendar.js +1 -1
- package/dist/cjs/coreX/Dialogs/DeleteDialog/DeleteDialog.js +47 -0
- package/dist/cjs/coreX/Dialogs/RejectDialog/RejectDialog.js +87 -0
- package/dist/cjs/coreX/Dialogs/RejectDialog/RejectDialog.type.js +11 -0
- package/dist/cjs/coreX/Dialogs/SmallDialog.js +86 -0
- package/dist/cjs/index.js +168 -131
- package/dist/cjs/stats1.html +1 -1
- package/dist/cjs/utils/constants.js +1 -1
- package/dist/cjs/utils/tower.js +81 -0
- package/dist/components.css +3386 -3045
- package/dist/esm/core/ConfigProvider/index.js +3 -3
- package/dist/esm/core/LineChart/LineChartActions.js +46 -0
- package/dist/esm/core/LineChart/LineChartLegend.js +91 -0
- package/dist/esm/core/LineChart/LineChartToolBar.js +50 -0
- package/dist/esm/core/LineChart/Pointer.js +38 -0
- package/dist/esm/core/LineChart/RenderChart.js +296 -0
- package/dist/esm/core/LineChart/TooltipFormatter.js +63 -0
- package/dist/esm/core/LineChart/index.js +57 -0
- package/dist/esm/core/LineChart/styled.js +25 -0
- package/dist/esm/core/LineChart/type.js +26 -0
- package/dist/esm/core/LineChart/utils.js +369 -0
- package/dist/esm/core/Loading/index.js +1 -1
- package/dist/esm/core/Progress/progress.widgets.js +1 -1
- package/dist/esm/core/Timeline/Timeline.widget.js +3 -3
- package/dist/esm/core/Timeline/index.js +3 -3
- package/dist/esm/coreX/CheckPointList/index.js +3 -3
- package/dist/esm/coreX/CircleLoading/index.js +3 -3
- package/dist/esm/coreX/DateRangePicker/Calendar.js +1 -1
- package/dist/esm/coreX/Dialogs/DeleteDialog/DeleteDialog.js +41 -0
- package/dist/esm/coreX/Dialogs/RejectDialog/RejectDialog.js +81 -0
- package/dist/esm/coreX/Dialogs/RejectDialog/RejectDialog.type.js +9 -0
- package/dist/esm/coreX/Dialogs/SmallDialog.js +80 -0
- package/dist/esm/index.js +10 -2
- package/dist/esm/stats1.html +1 -1
- package/dist/esm/utils/constants.js +1 -1
- package/dist/esm/utils/tower.js +77 -1
- package/dist/src/antd.d.ts +1 -1
- package/dist/src/core/ConfigProvider/index.d.ts +2 -2
- package/dist/src/core/LineChart/LineChartActions.d.ts +7 -0
- package/dist/src/core/LineChart/LineChartLegend.d.ts +18 -0
- package/dist/src/core/LineChart/LineChartToolBar.d.ts +20 -0
- package/dist/src/core/LineChart/Pointer.d.ts +6 -0
- package/dist/src/core/LineChart/RenderChart.d.ts +45 -0
- package/dist/src/core/LineChart/TooltipFormatter.d.ts +10 -0
- package/dist/src/core/LineChart/__test__/h5_css.test.d.ts +1 -0
- package/dist/src/core/LineChart/index.d.ts +8 -0
- package/dist/src/core/LineChart/styled.d.ts +12 -0
- package/dist/src/core/LineChart/type.d.ts +191 -0
- package/dist/src/core/LineChart/utils.d.ts +56 -0
- package/dist/src/core/Metric/metric.d.ts +1 -1
- package/dist/src/core/Timeline/Timeline.type.d.ts +2 -2
- package/dist/src/core/index.d.ts +4 -1
- package/dist/src/coreX/CheckPointList/index.d.ts +1 -1
- package/dist/src/coreX/Dialogs/DeleteDialog/DeleteDialog.d.ts +3 -0
- package/dist/src/coreX/Dialogs/DeleteDialog/DeleteDialog.type.d.ts +19 -0
- package/dist/src/coreX/Dialogs/DeleteDialog/index.d.ts +2 -0
- package/dist/src/coreX/Dialogs/RejectDialog/RejectDialog.d.ts +3 -0
- package/dist/src/coreX/Dialogs/RejectDialog/RejectDialog.type.d.ts +59 -0
- package/dist/src/coreX/Dialogs/RejectDialog/index.d.ts +2 -0
- package/dist/src/coreX/Dialogs/SmallDialog.d.ts +31 -0
- package/dist/src/coreX/Dialogs/index.d.ts +3 -0
- package/dist/src/coreX/index.d.ts +2 -1
- package/dist/src/utils/tower.d.ts +12 -0
- package/dist/stories/docs/core/Button.stories.d.ts +11 -0
- package/dist/stories/docs/core/LineChart.stories.d.ts +16 -0
- package/dist/stories/docs/core/Timeline.stories.d.ts +2 -2
- package/dist/stories/docs/coreX/CheckPointList.stories.d.ts +1 -1
- package/dist/stories/docs/coreX/Dialogs/DeleteDialog.stories.d.ts +37 -0
- package/dist/stories/docs/coreX/Dialogs/RejectDialog.stories.d.ts +89 -0
- package/dist/stories/docs/coreX/Show.stories.d.ts +2 -2
- package/dist/style.css +4584 -4282
- package/dist/variables.scss +2 -0
- package/package.json +5 -6
|
@@ -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;
|