@parca/profile 0.19.140 → 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 +5 -1
- 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.d.ts.map +1 -1
- package/dist/GraphTooltipArrow/useGraphTooltipMetaInfo/index.js +104 -72
- 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.d.ts.map +1 -1
- package/dist/ProfileExplorer/ProfileExplorerCompare.js +241 -45
- 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.d.ts +2 -2
- package/dist/ProfileFlameChart/SamplesStrips/index.d.ts.map +1 -1
- package/dist/ProfileFlameChart/SamplesStrips/index.js +645 -134
- package/dist/ProfileFlameChart/SamplesStrips/labelSetUtils.js +114 -55
- package/dist/ProfileFlameChart/index.d.ts.map +1 -1
- package/dist/ProfileFlameChart/index.js +267 -129
- package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenu.d.ts.map +1 -1
- package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenu.js +288 -89
- 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 +72 -47
- 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.d.ts.map +1 -1
- package/dist/ProfileFlameGraph/index.js +324 -150
- package/dist/ProfileMetricsGraph/hooks/useQueryRange.js +140 -32
- package/dist/ProfileMetricsGraph/index.d.ts.map +1 -1
- package/dist/ProfileMetricsGraph/index.js +519 -258
- package/dist/ProfileSelector/CompareButton.js +132 -12
- package/dist/ProfileSelector/MetricsGraphSection.d.ts.map +1 -1
- package/dist/ProfileSelector/MetricsGraphSection.js +236 -64
- package/dist/ProfileSelector/index.d.ts.map +1 -1
- package/dist/ProfileSelector/index.js +727 -141
- 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.d.ts.map +1 -1
- package/dist/ProfileView/components/ActionButtons/SortByDropdown.js +141 -35
- package/dist/ProfileView/components/ColorStackLegend.d.ts.map +1 -1
- package/dist/ProfileView/components/ColorStackLegend.js +185 -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.d.ts.map +1 -1
- package/dist/ProfileView/components/InvertCallStack/index.js +100 -12
- 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.d.ts +2 -1
- package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.d.ts.map +1 -1
- package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.js +188 -118
- 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 +678 -194
- package/dist/ProfileView/components/Toolbars/SwitchMenuItem.js +94 -7
- package/dist/ProfileView/components/Toolbars/TableColumnsDropdown.d.ts.map +1 -1
- package/dist/ProfileView/components/Toolbars/TableColumnsDropdown.js +199 -157
- package/dist/ProfileView/components/Toolbars/index.d.ts +2 -2
- package/dist/ProfileView/components/Toolbars/index.d.ts.map +1 -1
- package/dist/ProfileView/components/Toolbars/index.js +441 -21
- package/dist/ProfileView/components/ViewSelector/Dropdown.js +233 -22
- package/dist/ProfileView/components/ViewSelector/index.d.ts.map +1 -1
- package/dist/ProfileView/components/ViewSelector/index.js +212 -86
- 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.d.ts.map +1 -1
- package/dist/ProfileView/context/DashboardContext.js +85 -29
- 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.d.ts.map +1 -1
- package/dist/ProfileView/hooks/useResetFlameGraphState.js +32 -12
- package/dist/ProfileView/hooks/useResetStateOnProfileTypeChange.d.ts.map +1 -1
- package/dist/ProfileView/hooks/useResetStateOnProfileTypeChange.js +71 -27
- package/dist/ProfileView/hooks/useResetStateOnSeriesChange.d.ts.map +1 -1
- package/dist/ProfileView/hooks/useResetStateOnSeriesChange.js +40 -19
- package/dist/ProfileView/hooks/useVisualizationState.d.ts +3 -3
- package/dist/ProfileView/hooks/useVisualizationState.d.ts.map +1 -1
- package/dist/ProfileView/hooks/useVisualizationState.js +258 -67
- 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.d.ts.map +1 -1
- package/dist/ProfileViewWithData.js +332 -228
- 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.d.ts.map +1 -1
- package/dist/Sandwich/index.js +126 -14
- 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.d.ts.map +1 -1
- package/dist/SourceView/index.js +178 -104
- package/dist/SourceView/lang-detector/ext-to-lang.json +798 -798
- package/dist/SourceView/lang-detector/index.js +28 -14
- package/dist/SourceView/useSelectedLineRange.d.ts.map +1 -1
- package/dist/SourceView/useSelectedLineRange.js +99 -23
- package/dist/Table/ColorCell.js +42 -1
- package/dist/Table/ColumnsVisibility.js +114 -6
- package/dist/Table/MoreDropdown.d.ts.map +1 -1
- package/dist/Table/MoreDropdown.js +122 -25
- package/dist/Table/TableContextMenu.d.ts.map +1 -1
- package/dist/Table/TableContextMenu.js +151 -137
- 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 +333 -169
- package/dist/Table/index.d.ts.map +1 -1
- package/dist/Table/index.js +222 -128
- 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.d.ts.map +1 -1
- package/dist/TopTable/index.js +342 -123
- 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.d.ts.map +1 -1
- package/dist/hooks/useCompareModeMeta.js +158 -64
- package/dist/hooks/useLabels.js +295 -52
- package/dist/hooks/useQueryState.d.ts +3 -3
- package/dist/hooks/useQueryState.d.ts.map +1 -1
- package/dist/hooks/useQueryState.js +373 -332
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -8
- 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 +1 -1
- package/dist/useSumBy.d.ts.map +1 -1
- package/dist/useSumBy.js +294 -138
- package/dist/utils.js +62 -30
- package/package.json +9 -10
- package/src/GraphTooltipArrow/index.tsx +3 -0
- package/src/GraphTooltipArrow/useGraphTooltipMetaInfo/index.ts +13 -11
- 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/ProfileExplorer/ProfileExplorerCompare.tsx +9 -4
- package/src/ProfileFlameChart/SamplesStrips/index.tsx +2 -2
- package/src/ProfileFlameChart/index.tsx +28 -21
- package/src/ProfileFlameGraph/FlameGraphArrow/ContextMenu.tsx +9 -10
- package/src/ProfileFlameGraph/FlameGraphArrow/TextWithEllipsis.tsx +6 -5
- 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/ProfileFlameGraph/index.tsx +9 -6
- package/src/ProfileMetricsGraph/index.tsx +8 -6
- package/src/ProfileSelector/MetricsGraphSection.tsx +10 -5
- package/src/ProfileSelector/index.tsx +61 -39
- package/src/ProfileView/components/ActionButtons/SortByDropdown.tsx +6 -10
- package/src/ProfileView/components/ColorStackLegend.tsx +4 -2
- package/src/ProfileView/components/InvertCallStack/index.tsx +4 -5
- package/src/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.test.tsx +192 -94
- package/src/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.ts +21 -21
- package/src/ProfileView/components/Toolbars/MultiLevelDropdown.tsx +28 -24
- package/src/ProfileView/components/Toolbars/TableColumnsDropdown.tsx +5 -4
- package/src/ProfileView/components/Toolbars/index.tsx +3 -3
- package/src/ProfileView/components/ViewSelector/index.tsx +16 -9
- package/src/ProfileView/components/VisualizationContainer/index.tsx +3 -0
- package/src/ProfileView/context/DashboardContext.tsx +6 -6
- package/src/ProfileView/hooks/useResetFlameGraphState.ts +4 -6
- package/src/ProfileView/hooks/useResetStateOnProfileTypeChange.ts +26 -24
- package/src/ProfileView/hooks/useResetStateOnSeriesChange.ts +8 -16
- package/src/ProfileView/hooks/useVisualizationState.ts +69 -61
- package/src/ProfileViewWithData.tsx +35 -29
- package/src/Sandwich/index.tsx +3 -4
- package/src/SourceView/index.tsx +2 -4
- package/src/SourceView/useSelectedLineRange.ts +19 -34
- package/src/Table/MoreDropdown.tsx +11 -9
- package/src/Table/TableContextMenu.tsx +13 -10
- package/src/Table/hooks/useTableConfiguration.tsx +11 -16
- package/src/Table/index.tsx +21 -12
- package/src/TopTable/index.tsx +4 -3
- package/src/hooks/useCompareModeMeta.ts +91 -61
- package/src/hooks/useQueryState.test.tsx +345 -275
- package/src/hooks/useQueryState.ts +118 -136
- package/src/index.tsx +15 -16
- package/src/useDelayedLoader.ts +10 -10
- package/src/useSumBy.ts +15 -21
- package/dist/ProfileView/components/ProfileFilters/useProfileFiltersUrlState.test.js +0 -455
- package/dist/hooks/urlParsers.d.ts +0 -18
- package/dist/hooks/urlParsers.d.ts.map +0 -1
- package/dist/hooks/urlParsers.js +0 -32
- package/dist/hooks/useColorBy.d.ts +0 -5
- package/dist/hooks/useColorBy.d.ts.map +0 -1
- package/dist/hooks/useColorBy.js +0 -26
- package/dist/hooks/useDashboardItems.d.ts +0 -5
- package/dist/hooks/useDashboardItems.d.ts.map +0 -1
- package/dist/hooks/useDashboardItems.js +0 -27
- package/dist/hooks/useQueryState.test.js +0 -868
- package/src/hooks/urlParsers.ts +0 -38
- package/src/hooks/useColorBy.ts +0 -42
- package/src/hooks/useDashboardItems.ts +0 -46
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as _c } from "react-compiler-runtime";
|
|
2
2
|
// Copyright 2022 The Parca Authors
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -11,6 +11,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
+
|
|
14
15
|
import { useId, useMemo } from 'react';
|
|
15
16
|
import cx from 'classnames';
|
|
16
17
|
import { scaleLinear } from 'd3-scale';
|
|
@@ -24,77 +25,236 @@ import { useProfileViewContext } from '../ProfileView/context/ProfileViewContext
|
|
|
24
25
|
import { LineNo } from './LineNo';
|
|
25
26
|
import { langaugeFromFile } from './lang-detector';
|
|
26
27
|
import useLineRange from './useSelectedLineRange';
|
|
28
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
27
29
|
// cannot make this a function on the number as we need the classes to be static for tailwind
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
};
|
|
44
|
-
const intensityScale = scaleLinear().domain([0, 99]).range([0.05, 0.75]);
|
|
45
|
-
const LineProfileMetadata = ({ value, total, filtered, }) => {
|
|
46
|
-
const commonClasses = 'w-[52px] shrink-0';
|
|
47
|
-
const id = useId();
|
|
48
|
-
const { profileSource } = useProfileViewContext();
|
|
49
|
-
if (value === 0n) {
|
|
50
|
-
return _jsx("div", { className: cx(commonClasses) });
|
|
51
|
-
}
|
|
52
|
-
const unfilteredPercent = (Number(value) / Number(total + filtered)) * 100;
|
|
53
|
-
const filteredPercent = (Number(value) / Number(total)) * 100;
|
|
54
|
-
const valueWithUnit = valueFormatter(value, profileSource?.ProfileType().periodUnit ?? '', 1, true);
|
|
55
|
-
return (_jsxs(_Fragment, { children: [_jsx("p", { className: cx('w- flex justify-end overflow-hidden text-ellipsis whitespace-nowrap', commonClasses), style: { backgroundColor: `rgba(236, 151, 6, ${intensityScale(unfilteredPercent)})` }, "data-tooltip-id": id, "data-tooltip-content": `${valueWithUnit} (${unfilteredPercent.toFixed(2)}%${filtered > 0n ? ` / ${filteredPercent.toFixed(2)}%` : ''})`, children: valueWithUnit }), _jsx(Tooltip, { id: id })] }));
|
|
30
|
+
var charsToWidthMap = {
|
|
31
|
+
1: 'w-3',
|
|
32
|
+
2: 'w-5',
|
|
33
|
+
3: 'w-7',
|
|
34
|
+
4: 'w-9',
|
|
35
|
+
5: 'w-11',
|
|
36
|
+
6: 'w-[52px]',
|
|
37
|
+
7: 'w-[60px]]',
|
|
38
|
+
8: 'w-[68px]',
|
|
39
|
+
9: 'w-[76px]',
|
|
40
|
+
10: 'w-[84px]',
|
|
41
|
+
11: 'w-[92px]',
|
|
42
|
+
12: 'w-[100px]',
|
|
43
|
+
13: 'w-[108px]',
|
|
44
|
+
14: 'w-[116px]'
|
|
56
45
|
};
|
|
57
|
-
|
|
58
|
-
|
|
46
|
+
var intensityScale = scaleLinear().domain([0, 99]).range([0.05, 0.75]);
|
|
47
|
+
var LineProfileMetadata = function LineProfileMetadata(_ref) {
|
|
48
|
+
var _profileSource$Profil;
|
|
49
|
+
var value = _ref.value,
|
|
50
|
+
total = _ref.total,
|
|
51
|
+
filtered = _ref.filtered;
|
|
52
|
+
var commonClasses = 'w-[52px] shrink-0';
|
|
53
|
+
var id = useId();
|
|
54
|
+
var _useProfileViewContex = useProfileViewContext(),
|
|
55
|
+
profileSource = _useProfileViewContex.profileSource;
|
|
56
|
+
if (value === 0n) {
|
|
57
|
+
return /*#__PURE__*/_jsx("div", {
|
|
58
|
+
className: cx(commonClasses)
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
var unfilteredPercent = Number(value) / Number(total + filtered) * 100;
|
|
62
|
+
var filteredPercent = Number(value) / Number(total) * 100;
|
|
63
|
+
var valueWithUnit = valueFormatter(value, (_profileSource$Profil = profileSource === null || profileSource === void 0 ? void 0 : profileSource.ProfileType().periodUnit) !== null && _profileSource$Profil !== void 0 ? _profileSource$Profil : '', 1, true);
|
|
64
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
65
|
+
children: [/*#__PURE__*/_jsx("p", {
|
|
66
|
+
className: cx('w- flex justify-end overflow-hidden text-ellipsis whitespace-nowrap', commonClasses),
|
|
67
|
+
style: {
|
|
68
|
+
backgroundColor: "rgba(236, 151, 6, ".concat(intensityScale(unfilteredPercent), ")")
|
|
69
|
+
},
|
|
70
|
+
"data-tooltip-id": id,
|
|
71
|
+
"data-tooltip-content": "".concat(valueWithUnit, " (").concat(unfilteredPercent.toFixed(2), "%").concat(filtered > 0n ? " / ".concat(filteredPercent.toFixed(2), "%") : '', ")"),
|
|
72
|
+
children: valueWithUnit
|
|
73
|
+
}), /*#__PURE__*/_jsx(Tooltip, {
|
|
74
|
+
id: id
|
|
75
|
+
})]
|
|
76
|
+
});
|
|
59
77
|
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const lineNumberWidth = charsToWidth(rows.length.toString().length);
|
|
63
|
-
const { startLine, endLine, setLineRange } = useLineRange();
|
|
64
|
-
return (_jsx(_Fragment, { children: rows.map((node, i) => {
|
|
65
|
-
const lineNumber = node.children[0].children[0].value;
|
|
66
|
-
const isCurrentLine = lineNumber >= startLine && lineNumber <= endLine;
|
|
67
|
-
node.children = node.children.slice(1);
|
|
68
|
-
const data = getLineData(lineNumber);
|
|
69
|
-
return (_jsxs("div", { className: "flex gap-1", children: [_jsx("div", { className: cx('shrink-0 overflow-hidden border-r border-r-gray-200 text-right dark:border-r-gray-700', lineNumberWidth), children: _jsx(LineNo, { value: lineNumber, isCurrent: isCurrentLine, selectLine: (isShiftDown = false) => {
|
|
70
|
-
if (!isShiftDown) {
|
|
71
|
-
setLineRange(lineNumber, lineNumber);
|
|
72
|
-
}
|
|
73
|
-
if (isShiftDown && startLine != null) {
|
|
74
|
-
if (startLine > lineNumber) {
|
|
75
|
-
setLineRange(lineNumber, startLine);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
setLineRange(startLine, lineNumber);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
} }) }), _jsx(LineProfileMetadata, { value: data?.cumulative ?? 0n, total: total, filtered: filtered }), _jsx(LineProfileMetadata, { value: data?.flat ?? 0n, total: total, filtered: filtered }), _jsx("div", { className: cx('w-full flex-grow-0 border-l border-gray-200 pl-1 dark:border-gray-700', {
|
|
82
|
-
'bg-yellow-200 dark:bg-yellow-700': isCurrentLine,
|
|
83
|
-
}), onContextMenu: onContextMenu, children: createElement({
|
|
84
|
-
key: `source-line-${i}`,
|
|
85
|
-
node,
|
|
86
|
-
stylesheet,
|
|
87
|
-
useInlineStyles,
|
|
88
|
-
}) })] }, `${i}`));
|
|
89
|
-
}) }));
|
|
90
|
-
};
|
|
78
|
+
var charsToWidth = function charsToWidth(chars) {
|
|
79
|
+
return charsToWidthMap[chars];
|
|
91
80
|
};
|
|
92
|
-
export
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
81
|
+
export var profileAwareRenderer = function profileAwareRenderer(getLineData, total, filtered, onContextMenu) {
|
|
82
|
+
return function ProfileAwareRenderer(_ref2) {
|
|
83
|
+
var rows = _ref2.rows,
|
|
84
|
+
stylesheet = _ref2.stylesheet,
|
|
85
|
+
useInlineStyles = _ref2.useInlineStyles;
|
|
86
|
+
var lineNumberWidth = charsToWidth(rows.length.toString().length);
|
|
87
|
+
var _useLineRange = useLineRange(),
|
|
88
|
+
startLine = _useLineRange.startLine,
|
|
89
|
+
endLine = _useLineRange.endLine,
|
|
90
|
+
setLineRange = _useLineRange.setLineRange;
|
|
91
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
92
|
+
children: rows.map(function (node, i) {
|
|
93
|
+
var _data$cumulative, _data$flat;
|
|
94
|
+
var lineNumber = node.children[0].children[0].value;
|
|
95
|
+
var isCurrentLine = lineNumber >= startLine && lineNumber <= endLine;
|
|
96
|
+
node.children = node.children.slice(1);
|
|
97
|
+
var data = getLineData(lineNumber);
|
|
98
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
99
|
+
className: "flex gap-1",
|
|
100
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
101
|
+
className: cx('shrink-0 overflow-hidden border-r border-r-gray-200 text-right dark:border-r-gray-700', lineNumberWidth),
|
|
102
|
+
children: /*#__PURE__*/_jsx(LineNo, {
|
|
103
|
+
value: lineNumber,
|
|
104
|
+
isCurrent: isCurrentLine,
|
|
105
|
+
selectLine: function selectLine() {
|
|
106
|
+
var isShiftDown = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
107
|
+
if (!isShiftDown) {
|
|
108
|
+
setLineRange(lineNumber, lineNumber);
|
|
109
|
+
}
|
|
110
|
+
if (isShiftDown && startLine != null) {
|
|
111
|
+
if (startLine > lineNumber) {
|
|
112
|
+
setLineRange(lineNumber, startLine);
|
|
113
|
+
} else {
|
|
114
|
+
setLineRange(startLine, lineNumber);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
})
|
|
119
|
+
}), /*#__PURE__*/_jsx(LineProfileMetadata, {
|
|
120
|
+
value: (_data$cumulative = data === null || data === void 0 ? void 0 : data.cumulative) !== null && _data$cumulative !== void 0 ? _data$cumulative : 0n,
|
|
121
|
+
total: total,
|
|
122
|
+
filtered: filtered
|
|
123
|
+
}), /*#__PURE__*/_jsx(LineProfileMetadata, {
|
|
124
|
+
value: (_data$flat = data === null || data === void 0 ? void 0 : data.flat) !== null && _data$flat !== void 0 ? _data$flat : 0n,
|
|
125
|
+
total: total,
|
|
126
|
+
filtered: filtered
|
|
127
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
128
|
+
className: cx('w-full flex-grow-0 border-l border-gray-200 pl-1 dark:border-gray-700', {
|
|
129
|
+
'bg-yellow-200 dark:bg-yellow-700': isCurrentLine
|
|
130
|
+
}),
|
|
131
|
+
onContextMenu: onContextMenu,
|
|
132
|
+
children: createElement({
|
|
133
|
+
key: "source-line-".concat(i),
|
|
134
|
+
node: node,
|
|
135
|
+
stylesheet: stylesheet,
|
|
136
|
+
useInlineStyles: useInlineStyles
|
|
137
|
+
})
|
|
138
|
+
})]
|
|
139
|
+
}, "".concat(i));
|
|
140
|
+
})
|
|
141
|
+
});
|
|
142
|
+
};
|
|
100
143
|
};
|
|
144
|
+
export var Highlighter = function Highlighter(t0) {
|
|
145
|
+
var $ = _c(19);
|
|
146
|
+
var file = t0.file,
|
|
147
|
+
content = t0.content,
|
|
148
|
+
renderer = t0.renderer;
|
|
149
|
+
var _useParcaContext = useParcaContext(),
|
|
150
|
+
isDarkMode = _useParcaContext.isDarkMode;
|
|
151
|
+
var t1;
|
|
152
|
+
if ($[0] !== file) {
|
|
153
|
+
t1 = langaugeFromFile(file);
|
|
154
|
+
$[0] = file;
|
|
155
|
+
$[1] = t1;
|
|
156
|
+
} else {
|
|
157
|
+
t1 = $[1];
|
|
158
|
+
}
|
|
159
|
+
var language = t1;
|
|
160
|
+
var t2;
|
|
161
|
+
if ($[2] !== content) {
|
|
162
|
+
t2 = cx("text-right", charsToWidth(content.split("\n").length.toString().length));
|
|
163
|
+
$[2] = content;
|
|
164
|
+
$[3] = t2;
|
|
165
|
+
} else {
|
|
166
|
+
t2 = $[3];
|
|
167
|
+
}
|
|
168
|
+
var t3;
|
|
169
|
+
if ($[4] !== t2) {
|
|
170
|
+
t3 = /*#__PURE__*/_jsx("div", {
|
|
171
|
+
className: t2,
|
|
172
|
+
children: "Line"
|
|
173
|
+
});
|
|
174
|
+
$[4] = t2;
|
|
175
|
+
$[5] = t3;
|
|
176
|
+
} else {
|
|
177
|
+
t3 = $[5];
|
|
178
|
+
}
|
|
179
|
+
var t4;
|
|
180
|
+
if ($[6] === Symbol["for"]("react.memo_cache_sentinel")) {
|
|
181
|
+
t4 = /*#__PURE__*/_jsxs("div", {
|
|
182
|
+
className: "flex gap-3",
|
|
183
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
184
|
+
children: "Cumulative"
|
|
185
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
186
|
+
children: "Flat"
|
|
187
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
188
|
+
children: "Source"
|
|
189
|
+
})]
|
|
190
|
+
});
|
|
191
|
+
$[6] = t4;
|
|
192
|
+
} else {
|
|
193
|
+
t4 = $[6];
|
|
194
|
+
}
|
|
195
|
+
var t5;
|
|
196
|
+
if ($[7] !== t3) {
|
|
197
|
+
t5 = /*#__PURE__*/_jsxs("div", {
|
|
198
|
+
className: "flex gap-2 text-xs",
|
|
199
|
+
children: [t3, t4]
|
|
200
|
+
});
|
|
201
|
+
$[7] = t3;
|
|
202
|
+
$[8] = t5;
|
|
203
|
+
} else {
|
|
204
|
+
t5 = $[8];
|
|
205
|
+
}
|
|
206
|
+
var t6;
|
|
207
|
+
if ($[9] === Symbol["for"]("react.memo_cache_sentinel")) {
|
|
208
|
+
t6 = {
|
|
209
|
+
maxHeight: "calc(100vh - 200px)"
|
|
210
|
+
};
|
|
211
|
+
$[9] = t6;
|
|
212
|
+
} else {
|
|
213
|
+
t6 = $[9];
|
|
214
|
+
}
|
|
215
|
+
var t7 = isDarkMode ? atomOneDark : atomOneLight;
|
|
216
|
+
var t8;
|
|
217
|
+
if ($[10] === Symbol["for"]("react.memo_cache_sentinel")) {
|
|
218
|
+
t8 = {
|
|
219
|
+
padding: 0
|
|
220
|
+
};
|
|
221
|
+
$[10] = t8;
|
|
222
|
+
} else {
|
|
223
|
+
t8 = $[10];
|
|
224
|
+
}
|
|
225
|
+
var t9;
|
|
226
|
+
if ($[11] !== content || $[12] !== language || $[13] !== renderer || $[14] !== t7) {
|
|
227
|
+
t9 = /*#__PURE__*/_jsx("div", {
|
|
228
|
+
className: "text-xs overflow-auto",
|
|
229
|
+
style: t6,
|
|
230
|
+
children: /*#__PURE__*/_jsx(SyntaxHighlighter, {
|
|
231
|
+
language: language,
|
|
232
|
+
style: t7,
|
|
233
|
+
showLineNumbers: true,
|
|
234
|
+
renderer: renderer,
|
|
235
|
+
customStyle: t8,
|
|
236
|
+
children: content
|
|
237
|
+
})
|
|
238
|
+
});
|
|
239
|
+
$[11] = content;
|
|
240
|
+
$[12] = language;
|
|
241
|
+
$[13] = renderer;
|
|
242
|
+
$[14] = t7;
|
|
243
|
+
$[15] = t9;
|
|
244
|
+
} else {
|
|
245
|
+
t9 = $[15];
|
|
246
|
+
}
|
|
247
|
+
var t10;
|
|
248
|
+
if ($[16] !== t5 || $[17] !== t9) {
|
|
249
|
+
t10 = /*#__PURE__*/_jsxs("div", {
|
|
250
|
+
className: "relative",
|
|
251
|
+
children: [t5, t9]
|
|
252
|
+
});
|
|
253
|
+
$[16] = t5;
|
|
254
|
+
$[17] = t9;
|
|
255
|
+
$[18] = t10;
|
|
256
|
+
} else {
|
|
257
|
+
t10 = $[18];
|
|
258
|
+
}
|
|
259
|
+
return t10;
|
|
260
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as _c } from "react-compiler-runtime";
|
|
2
2
|
// Copyright 2022 The Parca Authors
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -11,22 +11,77 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
+
|
|
14
15
|
import { useEffect, useRef } from 'react';
|
|
15
16
|
import cx from 'classnames';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
+
export var LineNo = function LineNo(t0) {
|
|
19
|
+
var $ = _c(11);
|
|
20
|
+
var value = t0.value,
|
|
21
|
+
t1 = t0.isCurrent,
|
|
22
|
+
selectLine = t0.selectLine;
|
|
23
|
+
var isCurrent = t1 === undefined ? false : t1;
|
|
24
|
+
var ref = useRef(null);
|
|
25
|
+
var t2;
|
|
26
|
+
var t3;
|
|
27
|
+
if ($[0] !== isCurrent) {
|
|
28
|
+
t2 = function t2() {
|
|
29
|
+
if (isCurrent && ref.current !== null) {
|
|
30
|
+
var _window$innerHeight;
|
|
31
|
+
var bounds = ref.current.getBoundingClientRect();
|
|
32
|
+
if (bounds.top > 0 && bounds.bottom < ((_window$innerHeight = window.innerHeight) !== null && _window$innerHeight !== void 0 ? _window$innerHeight : document.documentElement.clientHeight)) {
|
|
33
|
+
return;
|
|
27
34
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
})
|
|
32
|
-
}
|
|
35
|
+
ref.current.scrollIntoView({
|
|
36
|
+
behavior: "smooth",
|
|
37
|
+
block: "center"
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
t3 = [isCurrent];
|
|
42
|
+
$[0] = isCurrent;
|
|
43
|
+
$[1] = t2;
|
|
44
|
+
$[2] = t3;
|
|
45
|
+
} else {
|
|
46
|
+
t2 = $[1];
|
|
47
|
+
t3 = $[2];
|
|
48
|
+
}
|
|
49
|
+
useEffect(t2, t3);
|
|
50
|
+
var t4;
|
|
51
|
+
if ($[3] !== selectLine) {
|
|
52
|
+
t4 = function t4(e) {
|
|
53
|
+
return typeof selectLine === "function" && selectLine(e.shiftKey);
|
|
54
|
+
};
|
|
55
|
+
$[3] = selectLine;
|
|
56
|
+
$[4] = t4;
|
|
57
|
+
} else {
|
|
58
|
+
t4 = $[4];
|
|
59
|
+
}
|
|
60
|
+
var t5;
|
|
61
|
+
if ($[5] !== isCurrent) {
|
|
62
|
+
t5 = cx("cursor-pointer px-1 select-none", {
|
|
63
|
+
"border-l border-l-amber-900 bg-yellow-200 dark:bg-yellow-700": isCurrent
|
|
64
|
+
});
|
|
65
|
+
$[5] = isCurrent;
|
|
66
|
+
$[6] = t5;
|
|
67
|
+
} else {
|
|
68
|
+
t5 = $[6];
|
|
69
|
+
}
|
|
70
|
+
var t6 = value.toString() + "\n";
|
|
71
|
+
var t7;
|
|
72
|
+
if ($[7] !== t4 || $[8] !== t5 || $[9] !== t6) {
|
|
73
|
+
t7 = /*#__PURE__*/_jsx("code", {
|
|
74
|
+
ref: ref,
|
|
75
|
+
onClick: t4,
|
|
76
|
+
className: t5,
|
|
77
|
+
children: t6
|
|
78
|
+
});
|
|
79
|
+
$[7] = t4;
|
|
80
|
+
$[8] = t5;
|
|
81
|
+
$[9] = t6;
|
|
82
|
+
$[10] = t7;
|
|
83
|
+
} else {
|
|
84
|
+
t7 = $[10];
|
|
85
|
+
}
|
|
86
|
+
return t7;
|
|
87
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SourceView/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAwC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SourceView/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAM7D,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAQrC,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;CACnD;AAID,eAAO,MAAM,UAAU,6CAqKrB,CAAC;AAEH,eAAe,UAAU,CAAC"}
|