@parca/profile 0.19.139 → 0.19.142
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/GraphTooltipArrow/Content.js +224 -30
- package/dist/GraphTooltipArrow/DockedGraphTooltip/index.js +192 -33
- package/dist/GraphTooltipArrow/ExpandOnHoverValue.js +53 -3
- package/dist/GraphTooltipArrow/index.d.ts.map +1 -1
- package/dist/GraphTooltipArrow/index.js +86 -56
- package/dist/GraphTooltipArrow/useGraphTooltip/index.js +37 -37
- package/dist/GraphTooltipArrow/useGraphTooltipMetaInfo/index.js +103 -73
- package/dist/MatchersInput/SuggestionItem.js +91 -12
- package/dist/MatchersInput/SuggestionsList.d.ts +2 -1
- package/dist/MatchersInput/SuggestionsList.d.ts.map +1 -1
- package/dist/MatchersInput/SuggestionsList.js +371 -157
- package/dist/MatchersInput/SuggestionsList.test.d.ts +2 -0
- package/dist/MatchersInput/SuggestionsList.test.d.ts.map +1 -0
- package/dist/MatchersInput/index.js +308 -115
- package/dist/MetricsCircle/index.js +39 -3
- package/dist/MetricsGraph/MetricsContextMenu/index.js +119 -19
- package/dist/MetricsGraph/MetricsInfoPanel/index.js +81 -20
- package/dist/MetricsGraph/MetricsTooltip/index.d.ts.map +1 -1
- package/dist/MetricsGraph/MetricsTooltip/index.js +107 -74
- package/dist/MetricsGraph/index.js +552 -203
- package/dist/MetricsGraph/useMetricsGraphDimensions.js +46 -25
- package/dist/MetricsGraph/utils/colorMapping.js +24 -17
- package/dist/MetricsSeries/index.js +70 -7
- package/dist/PreSelectedMatchers/index.d.ts.map +1 -1
- package/dist/PreSelectedMatchers/index.js +249 -102
- package/dist/ProfileExplorer/ProfileExplorerCompare.js +240 -49
- package/dist/ProfileExplorer/ProfileExplorerSingle.js +98 -11
- package/dist/ProfileExplorer/index.js +183 -32
- package/dist/ProfileFlameChart/SamplesStrips/SamplesGraph/index.js +333 -148
- package/dist/ProfileFlameChart/SamplesStrips/SamplesStrips.stories.js +69 -35
- package/dist/ProfileFlameChart/SamplesStrips/index.js +645 -134
- package/dist/ProfileFlameChart/SamplesStrips/labelSetUtils.js +114 -55
- package/dist/ProfileFlameChart/index.js +266 -134
- package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenu.js +287 -88
- package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenuWrapper.js +56 -20
- package/dist/ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes.js +211 -140
- package/dist/ProfileFlameGraph/FlameGraphArrow/MemoizedTooltip.js +133 -38
- package/dist/ProfileFlameGraph/FlameGraphArrow/MiniMap.js +261 -216
- package/dist/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.d.ts.map +1 -1
- package/dist/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.js +71 -45
- package/dist/ProfileFlameGraph/FlameGraphArrow/TooltipContext.d.ts.map +1 -1
- package/dist/ProfileFlameGraph/FlameGraphArrow/TooltipContext.js +58 -28
- package/dist/ProfileFlameGraph/FlameGraphArrow/ZoomControls.d.ts.map +1 -1
- package/dist/ProfileFlameGraph/FlameGraphArrow/ZoomControls.js +59 -8
- package/dist/ProfileFlameGraph/FlameGraphArrow/index.js +396 -179
- package/dist/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.d.ts.map +1 -1
- package/dist/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.js +68 -50
- package/dist/ProfileFlameGraph/FlameGraphArrow/useMappingList.js +62 -38
- package/dist/ProfileFlameGraph/FlameGraphArrow/useNodeColor.js +14 -6
- package/dist/ProfileFlameGraph/FlameGraphArrow/useScrollViewport.js +124 -82
- package/dist/ProfileFlameGraph/FlameGraphArrow/useVisibleNodes.js +160 -98
- package/dist/ProfileFlameGraph/FlameGraphArrow/useZoom.js +232 -112
- package/dist/ProfileFlameGraph/FlameGraphArrow/utils.js +137 -114
- package/dist/ProfileFlameGraph/benchmarks/benchdata/populateData.js +85 -0
- package/dist/ProfileFlameGraph/index.js +324 -148
- package/dist/ProfileMetricsGraph/hooks/useQueryRange.js +140 -32
- package/dist/ProfileMetricsGraph/index.js +518 -259
- package/dist/ProfileSelector/CompareButton.js +132 -12
- package/dist/ProfileSelector/MetricsGraphSection.js +234 -67
- package/dist/ProfileSelector/index.d.ts.map +1 -1
- package/dist/ProfileSelector/index.js +730 -142
- package/dist/ProfileSelector/useAutoQuerySelector.js +249 -130
- package/dist/ProfileSource.js +230 -163
- package/dist/ProfileTypeSelector/index.js +214 -125
- package/dist/ProfileView/components/ActionButtons/GroupByDropdown.js +50 -4
- package/dist/ProfileView/components/ActionButtons/SortByDropdown.js +139 -33
- package/dist/ProfileView/components/ColorStackLegend.js +184 -55
- package/dist/ProfileView/components/DashboardItems/index.js +87 -28
- package/dist/ProfileView/components/DashboardLayout/index.js +108 -16
- package/dist/ProfileView/components/DiffLegend.js +172 -29
- package/dist/ProfileView/components/GroupByLabelsDropdown/index.js +199 -55
- package/dist/ProfileView/components/InvertCallStack/index.js +99 -10
- package/dist/ProfileView/components/ProfileFilters/filterPresets.js +260 -315
- package/dist/ProfileView/components/ProfileFilters/index.js +518 -215
- package/dist/ProfileView/components/ProfileFilters/useProfileFilters.js +370 -306
- package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.js +188 -120
- package/dist/ProfileView/components/ProfileHeader/index.js +105 -11
- package/dist/ProfileView/components/ShareButton/ResultBox.js +119 -16
- package/dist/ProfileView/components/ShareButton/index.js +352 -62
- package/dist/ProfileView/components/Toolbars/MultiLevelDropdown.d.ts.map +1 -1
- package/dist/ProfileView/components/Toolbars/MultiLevelDropdown.js +675 -195
- package/dist/ProfileView/components/Toolbars/SwitchMenuItem.js +94 -7
- package/dist/ProfileView/components/Toolbars/TableColumnsDropdown.js +198 -157
- package/dist/ProfileView/components/Toolbars/index.js +441 -21
- package/dist/ProfileView/components/ViewSelector/Dropdown.js +233 -22
- package/dist/ProfileView/components/ViewSelector/index.js +211 -91
- package/dist/ProfileView/components/VisualizationContainer/index.d.ts.map +1 -1
- package/dist/ProfileView/components/VisualizationContainer/index.js +52 -7
- package/dist/ProfileView/components/VisualizationPanel.js +185 -8
- package/dist/ProfileView/context/DashboardContext.js +84 -28
- package/dist/ProfileView/context/ProfileViewContext.js +56 -15
- package/dist/ProfileView/hooks/useAutoSelectDimension.js +71 -41
- package/dist/ProfileView/hooks/useProfileMetadata.js +50 -18
- package/dist/ProfileView/hooks/useResetFlameGraphState.js +31 -10
- package/dist/ProfileView/hooks/useResetStateOnProfileTypeChange.js +72 -29
- package/dist/ProfileView/hooks/useResetStateOnSeriesChange.js +39 -13
- package/dist/ProfileView/hooks/useVisualizationState.js +262 -87
- package/dist/ProfileView/index.js +383 -45
- package/dist/ProfileView/types/visualization.js +1 -13
- package/dist/ProfileView/utils/colorUtils.js +8 -7
- package/dist/ProfileViewWithData.js +332 -237
- package/dist/QueryControls/index.js +418 -47
- package/dist/Sandwich/components/CalleesSection.js +54 -4
- package/dist/Sandwich/components/CallersSection.js +97 -27
- package/dist/Sandwich/components/TableSection.js +77 -4
- package/dist/Sandwich/index.js +125 -12
- package/dist/Sandwich/utils/processRowData.js +48 -39
- package/dist/SelectWithRefresh/index.js +102 -28
- package/dist/SimpleMatchers/Select.js +520 -187
- package/dist/SimpleMatchers/index.js +590 -288
- package/dist/SourceView/Highlighter.js +230 -70
- package/dist/SourceView/LineNo.js +72 -17
- package/dist/SourceView/index.js +177 -101
- package/dist/SourceView/lang-detector/ext-to-lang.json +798 -798
- package/dist/SourceView/lang-detector/index.js +28 -14
- package/dist/SourceView/useSelectedLineRange.js +97 -16
- package/dist/Table/ColorCell.js +42 -1
- package/dist/Table/ColumnsVisibility.js +114 -6
- package/dist/Table/MoreDropdown.js +121 -27
- package/dist/Table/TableContextMenu.js +150 -139
- package/dist/Table/TableContextMenuWrapper.js +59 -14
- package/dist/Table/hooks/useColorManagement.js +58 -16
- package/dist/Table/hooks/useTableConfiguration.d.ts.map +1 -1
- package/dist/Table/hooks/useTableConfiguration.js +331 -168
- package/dist/Table/index.js +222 -126
- package/dist/Table/utils/functions.js +169 -144
- package/dist/Table/utils/topAndBottomExpandedRowModel.js +69 -52
- package/dist/TimelineGuide/index.js +209 -16
- package/dist/TopTable/benchmarks/benchdata/populateData.js +91 -0
- package/dist/TopTable/index.js +340 -122
- package/dist/contexts/LabelsQueryProvider.js +94 -32
- package/dist/contexts/UnifiedLabelsContext.js +114 -49
- package/dist/contexts/utils.js +37 -15
- package/dist/hooks/useCompareModeMeta.js +157 -94
- package/dist/hooks/useLabels.js +295 -52
- package/dist/hooks/useQueryState.js +371 -330
- package/dist/index.js +21 -16
- package/dist/testdata/fg-diff.json +3750 -0
- package/dist/testdata/fg-simple.json +1879 -0
- package/dist/testdata/link_data.json +56 -0
- package/dist/testdata/tabular.json +30 -0
- package/dist/testdata/test_flamegraph.json +26846 -0
- package/dist/testdata/test_graph.json +53 -0
- package/dist/useDelayedLoader.js +32 -18
- package/dist/useGrpcQuery/index.js +71 -11
- package/dist/useHasProfileData.js +90 -12
- package/dist/useQuery.js +205 -64
- package/dist/useSumBy.d.ts.map +1 -1
- package/dist/useSumBy.js +294 -138
- package/dist/utils.js +62 -30
- package/package.json +9 -9
- package/src/GraphTooltipArrow/index.tsx +3 -0
- package/src/MatchersInput/SuggestionsList.test.tsx +70 -0
- package/src/MatchersInput/SuggestionsList.tsx +11 -10
- package/src/MatchersInput/index.tsx +1 -1
- package/src/MetricsGraph/MetricsTooltip/index.tsx +22 -34
- package/src/PreSelectedMatchers/index.tsx +3 -0
- package/src/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.tsx +3 -0
- package/src/ProfileFlameGraph/FlameGraphArrow/TooltipContext.tsx +3 -0
- package/src/ProfileFlameGraph/FlameGraphArrow/ZoomControls.tsx +3 -0
- package/src/ProfileFlameGraph/FlameGraphArrow/useBatchedRendering.ts +3 -0
- package/src/ProfileSelector/index.tsx +30 -7
- package/src/ProfileView/components/Toolbars/MultiLevelDropdown.tsx +3 -0
- package/src/ProfileView/components/VisualizationContainer/index.tsx +3 -0
- package/src/Table/hooks/useTableConfiguration.tsx +7 -13
- package/src/useDelayedLoader.ts +10 -10
- package/src/useSumBy.ts +12 -18
- package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.test.js +0 -541
- package/dist/hooks/useQueryState.test.js +0 -984
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
|
+
import { c as _c } from "react-compiler-runtime";
|
|
2
8
|
// Copyright 2022 The Parca Authors
|
|
3
9
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
10
|
// you may not use this file except in compliance with the License.
|
|
@@ -11,12 +17,93 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
11
17
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
18
|
// See the License for the specific language governing permissions and
|
|
13
19
|
// limitations under the License.
|
|
20
|
+
|
|
14
21
|
import { Switch } from '@headlessui/react';
|
|
15
22
|
import { useUserPreference } from '@parca/hooks';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
+
function SwitchMenuItem(t0) {
|
|
25
|
+
var $ = _c(16);
|
|
26
|
+
var label = t0.label,
|
|
27
|
+
id = t0.id,
|
|
28
|
+
userPreferenceDetails = t0.userPreferenceDetails;
|
|
29
|
+
var _useUserPreference = useUserPreference(userPreferenceDetails.key),
|
|
30
|
+
_useUserPreference2 = _slicedToArray(_useUserPreference, 2),
|
|
31
|
+
enabledPreference = _useUserPreference2[0],
|
|
32
|
+
setEnabledPreference = _useUserPreference2[1];
|
|
33
|
+
var t1;
|
|
34
|
+
if ($[0] !== label) {
|
|
35
|
+
t1 = /*#__PURE__*/_jsx("span", {
|
|
36
|
+
children: label
|
|
37
|
+
});
|
|
38
|
+
$[0] = label;
|
|
39
|
+
$[1] = t1;
|
|
40
|
+
} else {
|
|
41
|
+
t1 = $[1];
|
|
42
|
+
}
|
|
43
|
+
var t2 = enabledPreference;
|
|
44
|
+
var t3;
|
|
45
|
+
if ($[2] !== setEnabledPreference) {
|
|
46
|
+
t3 = function t3(checked) {
|
|
47
|
+
return setEnabledPreference(checked);
|
|
48
|
+
};
|
|
49
|
+
$[2] = setEnabledPreference;
|
|
50
|
+
$[3] = t3;
|
|
51
|
+
} else {
|
|
52
|
+
t3 = $[3];
|
|
53
|
+
}
|
|
54
|
+
var t4 = "".concat(enabledPreference ? "bg-indigo-600" : "bg-gray-400 dark:bg-gray-800", "\n relative inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus-visible:ring-2 focus-visible:ring-white/75");
|
|
55
|
+
var t5;
|
|
56
|
+
if ($[4] === Symbol["for"]("react.memo_cache_sentinel")) {
|
|
57
|
+
t5 = /*#__PURE__*/_jsx("span", {
|
|
58
|
+
className: "sr-only",
|
|
59
|
+
children: "Use setting"
|
|
60
|
+
});
|
|
61
|
+
$[4] = t5;
|
|
62
|
+
} else {
|
|
63
|
+
t5 = $[4];
|
|
64
|
+
}
|
|
65
|
+
var t6 = "".concat(enabledPreference ? "translate-x-5" : "translate-x-0", "\n pointer-events-none inline-block h-[20px] w-[20px] transform rounded-full bg-white shadow-lg ring-0 transition duration-200 ease-in-out");
|
|
66
|
+
var t7;
|
|
67
|
+
if ($[5] !== t6) {
|
|
68
|
+
t7 = /*#__PURE__*/_jsx("span", {
|
|
69
|
+
"aria-hidden": "true",
|
|
70
|
+
className: t6
|
|
71
|
+
});
|
|
72
|
+
$[5] = t6;
|
|
73
|
+
$[6] = t7;
|
|
74
|
+
} else {
|
|
75
|
+
t7 = $[6];
|
|
76
|
+
}
|
|
77
|
+
var t8;
|
|
78
|
+
if ($[7] !== id || $[8] !== t2 || $[9] !== t3 || $[10] !== t4 || $[11] !== t7) {
|
|
79
|
+
t8 = /*#__PURE__*/_jsxs(Switch, {
|
|
80
|
+
id: id,
|
|
81
|
+
checked: t2,
|
|
82
|
+
onChange: t3,
|
|
83
|
+
className: t4,
|
|
84
|
+
children: [t5, t7]
|
|
85
|
+
});
|
|
86
|
+
$[7] = id;
|
|
87
|
+
$[8] = t2;
|
|
88
|
+
$[9] = t3;
|
|
89
|
+
$[10] = t4;
|
|
90
|
+
$[11] = t7;
|
|
91
|
+
$[12] = t8;
|
|
92
|
+
} else {
|
|
93
|
+
t8 = $[12];
|
|
94
|
+
}
|
|
95
|
+
var t9;
|
|
96
|
+
if ($[13] !== t1 || $[14] !== t8) {
|
|
97
|
+
t9 = /*#__PURE__*/_jsxs("div", {
|
|
98
|
+
className: "flex items-center justify-between w-full",
|
|
99
|
+
children: [t1, t8]
|
|
100
|
+
});
|
|
101
|
+
$[13] = t1;
|
|
102
|
+
$[14] = t8;
|
|
103
|
+
$[15] = t9;
|
|
104
|
+
} else {
|
|
105
|
+
t9 = $[15];
|
|
106
|
+
}
|
|
107
|
+
return t9;
|
|
21
108
|
}
|
|
22
|
-
export default SwitchMenuItem;
|
|
109
|
+
export default SwitchMenuItem;
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
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; }
|
|
3
|
+
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) { _defineProperty(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; }
|
|
4
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
8
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
10
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
11
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
12
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
2
13
|
// Copyright 2022 The Parca Authors
|
|
3
14
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
15
|
// you may not use this file except in compliance with the License.
|
|
@@ -11,6 +22,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
11
22
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
23
|
// See the License for the specific language governing permissions and
|
|
13
24
|
// limitations under the License.
|
|
25
|
+
|
|
14
26
|
import { useEffect, useMemo, useState } from 'react';
|
|
15
27
|
import { createColumnHelper } from '@tanstack/table-core';
|
|
16
28
|
import { useURLState } from '@parca/components';
|
|
@@ -18,161 +30,190 @@ import { valueFormatter } from '@parca/utilities';
|
|
|
18
30
|
import ColumnsVisibility from '../../../Table/ColumnsVisibility';
|
|
19
31
|
import { addPlusSign, getRatioString } from '../../../Table/utils/functions';
|
|
20
32
|
import { useProfileViewContext } from '../../context/ProfileViewContext';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
},
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
33
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
34
|
+
var TableColumnsDropdown = function TableColumnsDropdown(_ref) {
|
|
35
|
+
var profileType = _ref.profileType,
|
|
36
|
+
total = _ref.total,
|
|
37
|
+
filtered = _ref.filtered;
|
|
38
|
+
var _useProfileViewContex = useProfileViewContext(),
|
|
39
|
+
compareMode = _useProfileViewContex.compareMode;
|
|
40
|
+
var _useURLState = useURLState('table_columns', {
|
|
41
|
+
alwaysReturnArray: true
|
|
42
|
+
}),
|
|
43
|
+
_useURLState2 = _slicedToArray(_useURLState, 2),
|
|
44
|
+
tableColumns = _useURLState2[0],
|
|
45
|
+
setTableColumns = _useURLState2[1];
|
|
46
|
+
var columnHelper = createColumnHelper();
|
|
47
|
+
var unit = useMemo(function () {
|
|
48
|
+
var _profileType$sampleUn;
|
|
49
|
+
return (_profileType$sampleUn = profileType === null || profileType === void 0 ? void 0 : profileType.sampleUnit) !== null && _profileType$sampleUn !== void 0 ? _profileType$sampleUn : '';
|
|
50
|
+
}, [profileType === null || profileType === void 0 ? void 0 : profileType.sampleUnit]);
|
|
51
|
+
var columns = useMemo(function () {
|
|
52
|
+
return [columnHelper.accessor('flat', {
|
|
53
|
+
id: 'flat',
|
|
54
|
+
header: 'Flat',
|
|
55
|
+
cell: function cell(info) {
|
|
56
|
+
return valueFormatter(info.getValue(), unit, 2);
|
|
57
|
+
},
|
|
58
|
+
size: 80,
|
|
59
|
+
meta: {
|
|
60
|
+
align: 'right'
|
|
61
|
+
},
|
|
62
|
+
invertSorting: true
|
|
63
|
+
}), columnHelper.accessor('flat', {
|
|
64
|
+
id: 'flatPercentage',
|
|
65
|
+
header: 'Flat (%)',
|
|
66
|
+
cell: function cell(info) {
|
|
67
|
+
return getRatioString(info.getValue(), total, filtered);
|
|
68
|
+
},
|
|
69
|
+
size: 120,
|
|
70
|
+
meta: {
|
|
71
|
+
align: 'right'
|
|
72
|
+
},
|
|
73
|
+
invertSorting: true
|
|
74
|
+
}), columnHelper.accessor('flatDiff', {
|
|
75
|
+
id: 'flatDiff',
|
|
76
|
+
header: 'Flat Diff',
|
|
77
|
+
cell: function cell(info) {
|
|
78
|
+
return addPlusSign(valueFormatter(info.getValue(), unit, 2));
|
|
79
|
+
},
|
|
80
|
+
size: 120,
|
|
81
|
+
meta: {
|
|
82
|
+
align: 'right'
|
|
83
|
+
},
|
|
84
|
+
invertSorting: true
|
|
85
|
+
}), columnHelper.accessor('flatDiff', {
|
|
86
|
+
id: 'flatDiffPercentage',
|
|
87
|
+
header: 'Flat Diff (%)',
|
|
88
|
+
cell: function cell(info) {
|
|
89
|
+
return getRatioString(info.getValue(), total, filtered);
|
|
90
|
+
},
|
|
91
|
+
size: 120,
|
|
92
|
+
meta: {
|
|
93
|
+
align: 'right'
|
|
94
|
+
},
|
|
95
|
+
invertSorting: true
|
|
96
|
+
}), columnHelper.accessor('cumulative', {
|
|
97
|
+
id: 'cumulative',
|
|
98
|
+
header: 'Cumulative',
|
|
99
|
+
cell: function cell(info) {
|
|
100
|
+
return valueFormatter(info.getValue(), unit, 2);
|
|
101
|
+
},
|
|
102
|
+
size: 150,
|
|
103
|
+
meta: {
|
|
104
|
+
align: 'right'
|
|
105
|
+
},
|
|
106
|
+
invertSorting: true
|
|
107
|
+
}), columnHelper.accessor('cumulative', {
|
|
108
|
+
id: 'cumulativePercentage',
|
|
109
|
+
header: 'Cumulative (%)',
|
|
110
|
+
cell: function cell(info) {
|
|
111
|
+
return getRatioString(info.getValue(), total, filtered);
|
|
112
|
+
},
|
|
113
|
+
size: 150,
|
|
114
|
+
meta: {
|
|
115
|
+
align: 'right'
|
|
116
|
+
},
|
|
117
|
+
invertSorting: true
|
|
118
|
+
}), columnHelper.accessor('cumulativeDiff', {
|
|
119
|
+
id: 'cumulativeDiff',
|
|
120
|
+
header: 'Cumulative Diff',
|
|
121
|
+
cell: function cell(info) {
|
|
122
|
+
return addPlusSign(valueFormatter(info.getValue(), unit, 2));
|
|
123
|
+
},
|
|
124
|
+
size: 170,
|
|
125
|
+
meta: {
|
|
126
|
+
align: 'right'
|
|
127
|
+
},
|
|
128
|
+
invertSorting: true
|
|
129
|
+
}), columnHelper.accessor('cumulativeDiff', {
|
|
130
|
+
id: 'cumulativeDiffPercentage',
|
|
131
|
+
header: 'Cumulative Diff (%)',
|
|
132
|
+
cell: function cell(info) {
|
|
133
|
+
return getRatioString(info.getValue(), total, filtered);
|
|
134
|
+
},
|
|
135
|
+
size: 170,
|
|
136
|
+
meta: {
|
|
137
|
+
align: 'right'
|
|
138
|
+
},
|
|
139
|
+
invertSorting: true
|
|
140
|
+
}), columnHelper.accessor('name', {
|
|
141
|
+
id: 'name',
|
|
142
|
+
header: 'Name',
|
|
143
|
+
cell: function cell(info) {
|
|
144
|
+
return info.getValue();
|
|
145
|
+
}
|
|
146
|
+
}), columnHelper.accessor('functionSystemName', {
|
|
147
|
+
id: 'functionSystemName',
|
|
148
|
+
header: 'Function System Name',
|
|
149
|
+
cell: function cell(info) {
|
|
150
|
+
return info.getValue();
|
|
151
|
+
}
|
|
152
|
+
}), columnHelper.accessor('functionFileName', {
|
|
153
|
+
id: 'functionFileName',
|
|
154
|
+
header: 'Function File Name',
|
|
155
|
+
cell: function cell(info) {
|
|
156
|
+
return info.getValue();
|
|
157
|
+
}
|
|
158
|
+
}), columnHelper.accessor('mappingFile', {
|
|
159
|
+
id: 'mappingFile',
|
|
160
|
+
header: 'Mapping File',
|
|
161
|
+
cell: function cell(info) {
|
|
162
|
+
return info.getValue();
|
|
163
|
+
}
|
|
164
|
+
})];
|
|
165
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
166
|
+
}, [profileType, unit]);
|
|
167
|
+
var _useState = useState(function () {
|
|
168
|
+
return {
|
|
169
|
+
color: true,
|
|
170
|
+
flat: true,
|
|
171
|
+
flatPercentage: false,
|
|
172
|
+
flatDiff: compareMode,
|
|
173
|
+
flatDiffPercentage: false,
|
|
174
|
+
cumulative: true,
|
|
175
|
+
cumulativePercentage: false,
|
|
176
|
+
cumulativeDiff: compareMode,
|
|
177
|
+
cumulativeDiffPercentage: false,
|
|
178
|
+
name: true,
|
|
179
|
+
functionSystemName: false,
|
|
180
|
+
functionFileName: false,
|
|
181
|
+
mappingFile: false
|
|
182
|
+
};
|
|
183
|
+
}),
|
|
184
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
185
|
+
columnVisibility = _useState2[0],
|
|
186
|
+
setColumnVisibility = _useState2[1];
|
|
187
|
+
useEffect(function () {
|
|
188
|
+
if (Array.isArray(tableColumns)) {
|
|
189
|
+
setColumnVisibility(function (prevState) {
|
|
190
|
+
var newState = _objectSpread({}, prevState);
|
|
191
|
+
Object.keys(newState).forEach(function (column) {
|
|
192
|
+
newState[column] = tableColumns.includes(column);
|
|
193
|
+
});
|
|
194
|
+
return newState;
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}, [tableColumns]);
|
|
198
|
+
var updateColumnVisibility = function updateColumnVisibility(column, isVisible) {
|
|
199
|
+
var updatedColumns = _objectSpread(_objectSpread({}, columnVisibility), {}, _defineProperty({}, column, isVisible));
|
|
200
|
+
var newTableColumns = Object.keys(updatedColumns).filter(function (col) {
|
|
201
|
+
return updatedColumns[col];
|
|
157
202
|
});
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
};
|
|
174
|
-
return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("label", { className: "text-sm", children: "Table Columns" }), _jsx(ColumnsVisibility, { columns: columns, visibility: columnVisibility, setVisibility: (id, visible) => {
|
|
175
|
-
updateColumnVisibility(id, visible);
|
|
176
|
-
} })] }));
|
|
203
|
+
setTableColumns(newTableColumns);
|
|
204
|
+
};
|
|
205
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
206
|
+
className: "flex flex-col gap-1",
|
|
207
|
+
children: [/*#__PURE__*/_jsx("label", {
|
|
208
|
+
className: "text-sm",
|
|
209
|
+
children: "Table Columns"
|
|
210
|
+
}), /*#__PURE__*/_jsx(ColumnsVisibility, {
|
|
211
|
+
columns: columns,
|
|
212
|
+
visibility: columnVisibility,
|
|
213
|
+
setVisibility: function setVisibility(id, visible) {
|
|
214
|
+
updateColumnVisibility(id, visible);
|
|
215
|
+
}
|
|
216
|
+
})]
|
|
217
|
+
});
|
|
177
218
|
};
|
|
178
|
-
export default TableColumnsDropdown;
|
|
219
|
+
export default TableColumnsDropdown;
|