@perses-dev/explore 0.50.0 → 0.51.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/cjs/components/ExploreManager/ExploreManager.js +39 -18
  2. package/dist/cjs/components/ExploreManager/ExplorerManagerProvider.js +10 -50
  3. package/dist/cjs/components/ExploreManager/ExplorerManagerProviderWithQueryParams.js +1 -4
  4. package/dist/cjs/components/ExploreManager/index.js +2 -0
  5. package/dist/cjs/components/index.js +0 -1
  6. package/dist/components/ExploreManager/ExploreManager.d.ts.map +1 -1
  7. package/dist/components/ExploreManager/ExploreManager.js +39 -18
  8. package/dist/components/ExploreManager/ExploreManager.js.map +1 -1
  9. package/dist/components/ExploreManager/ExplorerManagerProvider.d.ts +2 -2
  10. package/dist/components/ExploreManager/ExplorerManagerProvider.d.ts.map +1 -1
  11. package/dist/components/ExploreManager/ExplorerManagerProvider.js +10 -9
  12. package/dist/components/ExploreManager/ExplorerManagerProvider.js.map +1 -1
  13. package/dist/components/ExploreManager/ExplorerManagerProviderWithQueryParams.js +2 -5
  14. package/dist/components/ExploreManager/ExplorerManagerProviderWithQueryParams.js.map +1 -1
  15. package/dist/components/ExploreManager/index.d.ts +2 -0
  16. package/dist/components/ExploreManager/index.d.ts.map +1 -1
  17. package/dist/components/ExploreManager/index.js +2 -0
  18. package/dist/components/ExploreManager/index.js.map +1 -1
  19. package/dist/components/index.d.ts +0 -1
  20. package/dist/components/index.d.ts.map +1 -1
  21. package/dist/components/index.js +0 -1
  22. package/dist/components/index.js.map +1 -1
  23. package/package.json +8 -10
  24. package/dist/cjs/components/ExploreManager/MetricsExplorer.js +0 -203
  25. package/dist/cjs/components/ExploreManager/TracesExplorer.js +0 -175
  26. package/dist/cjs/components/ExploreManager/constants.js +0 -32
  27. package/dist/cjs/components/PrometheusMetricsFinder/PrometheusMetricsFinder.js +0 -310
  28. package/dist/cjs/components/PrometheusMetricsFinder/display/MetricChip.js +0 -61
  29. package/dist/cjs/components/PrometheusMetricsFinder/display/list/MetricList.js +0 -224
  30. package/dist/cjs/components/PrometheusMetricsFinder/filter/FilterInputs.js +0 -232
  31. package/dist/cjs/components/PrometheusMetricsFinder/filter/FinderFilters.js +0 -139
  32. package/dist/cjs/components/PrometheusMetricsFinder/index.js +0 -30
  33. package/dist/cjs/components/PrometheusMetricsFinder/overview/MetricOverview.js +0 -244
  34. package/dist/cjs/components/PrometheusMetricsFinder/overview/tabs/JobTab.js +0 -146
  35. package/dist/cjs/components/PrometheusMetricsFinder/overview/tabs/OverviewTab.js +0 -413
  36. package/dist/cjs/components/PrometheusMetricsFinder/overview/tabs/SimilarTab.js +0 -54
  37. package/dist/cjs/components/PrometheusMetricsFinder/types.js +0 -25
  38. package/dist/cjs/components/PrometheusMetricsFinder/utils.js +0 -203
  39. package/dist/components/ExploreManager/MetricsExplorer.d.ts +0 -3
  40. package/dist/components/ExploreManager/MetricsExplorer.d.ts.map +0 -1
  41. package/dist/components/ExploreManager/MetricsExplorer.js +0 -190
  42. package/dist/components/ExploreManager/MetricsExplorer.js.map +0 -1
  43. package/dist/components/ExploreManager/TracesExplorer.d.ts +0 -3
  44. package/dist/components/ExploreManager/TracesExplorer.d.ts.map +0 -1
  45. package/dist/components/ExploreManager/TracesExplorer.js +0 -167
  46. package/dist/components/ExploreManager/TracesExplorer.js.map +0 -1
  47. package/dist/components/ExploreManager/constants.d.ts +0 -3
  48. package/dist/components/ExploreManager/constants.d.ts.map +0 -1
  49. package/dist/components/ExploreManager/constants.js +0 -16
  50. package/dist/components/ExploreManager/constants.js.map +0 -1
  51. package/dist/components/PrometheusMetricsFinder/PrometheusMetricsFinder.d.ts +0 -31
  52. package/dist/components/PrometheusMetricsFinder/PrometheusMetricsFinder.d.ts.map +0 -1
  53. package/dist/components/PrometheusMetricsFinder/PrometheusMetricsFinder.js +0 -245
  54. package/dist/components/PrometheusMetricsFinder/PrometheusMetricsFinder.js.map +0 -1
  55. package/dist/components/PrometheusMetricsFinder/display/MetricChip.d.ts +0 -4
  56. package/dist/components/PrometheusMetricsFinder/display/MetricChip.d.ts.map +0 -1
  57. package/dist/components/PrometheusMetricsFinder/display/MetricChip.js +0 -53
  58. package/dist/components/PrometheusMetricsFinder/display/MetricChip.js.map +0 -1
  59. package/dist/components/PrometheusMetricsFinder/display/list/MetricList.d.ts +0 -27
  60. package/dist/components/PrometheusMetricsFinder/display/list/MetricList.d.ts.map +0 -1
  61. package/dist/components/PrometheusMetricsFinder/display/list/MetricList.js +0 -162
  62. package/dist/components/PrometheusMetricsFinder/display/list/MetricList.js.map +0 -1
  63. package/dist/components/PrometheusMetricsFinder/filter/FilterInputs.d.ts +0 -23
  64. package/dist/components/PrometheusMetricsFinder/filter/FilterInputs.d.ts.map +0 -1
  65. package/dist/components/PrometheusMetricsFinder/filter/FilterInputs.js +0 -210
  66. package/dist/components/PrometheusMetricsFinder/filter/FilterInputs.js.map +0 -1
  67. package/dist/components/PrometheusMetricsFinder/filter/FinderFilters.d.ts +0 -13
  68. package/dist/components/PrometheusMetricsFinder/filter/FinderFilters.d.ts.map +0 -1
  69. package/dist/components/PrometheusMetricsFinder/filter/FinderFilters.js +0 -85
  70. package/dist/components/PrometheusMetricsFinder/filter/FinderFilters.js.map +0 -1
  71. package/dist/components/PrometheusMetricsFinder/index.d.ts +0 -2
  72. package/dist/components/PrometheusMetricsFinder/index.d.ts.map +0 -1
  73. package/dist/components/PrometheusMetricsFinder/index.js +0 -15
  74. package/dist/components/PrometheusMetricsFinder/index.js.map +0 -1
  75. package/dist/components/PrometheusMetricsFinder/overview/MetricOverview.d.ts +0 -23
  76. package/dist/components/PrometheusMetricsFinder/overview/MetricOverview.d.ts.map +0 -1
  77. package/dist/components/PrometheusMetricsFinder/overview/MetricOverview.js +0 -223
  78. package/dist/components/PrometheusMetricsFinder/overview/MetricOverview.js.map +0 -1
  79. package/dist/components/PrometheusMetricsFinder/overview/tabs/JobTab.d.ts +0 -28
  80. package/dist/components/PrometheusMetricsFinder/overview/tabs/JobTab.d.ts.map +0 -1
  81. package/dist/components/PrometheusMetricsFinder/overview/tabs/JobTab.js +0 -127
  82. package/dist/components/PrometheusMetricsFinder/overview/tabs/JobTab.js.map +0 -1
  83. package/dist/components/PrometheusMetricsFinder/overview/tabs/OverviewTab.d.ts +0 -25
  84. package/dist/components/PrometheusMetricsFinder/overview/tabs/OverviewTab.d.ts.map +0 -1
  85. package/dist/components/PrometheusMetricsFinder/overview/tabs/OverviewTab.js +0 -389
  86. package/dist/components/PrometheusMetricsFinder/overview/tabs/OverviewTab.js.map +0 -1
  87. package/dist/components/PrometheusMetricsFinder/overview/tabs/SimilarTab.d.ts +0 -12
  88. package/dist/components/PrometheusMetricsFinder/overview/tabs/SimilarTab.d.ts.map +0 -1
  89. package/dist/components/PrometheusMetricsFinder/overview/tabs/SimilarTab.js +0 -46
  90. package/dist/components/PrometheusMetricsFinder/overview/tabs/SimilarTab.js.map +0 -1
  91. package/dist/components/PrometheusMetricsFinder/types.d.ts +0 -22
  92. package/dist/components/PrometheusMetricsFinder/types.d.ts.map +0 -1
  93. package/dist/components/PrometheusMetricsFinder/types.js +0 -17
  94. package/dist/components/PrometheusMetricsFinder/types.js.map +0 -1
  95. package/dist/components/PrometheusMetricsFinder/utils.d.ts +0 -20
  96. package/dist/components/PrometheusMetricsFinder/utils.d.ts.map +0 -1
  97. package/dist/components/PrometheusMetricsFinder/utils.js +0 -185
  98. package/dist/components/PrometheusMetricsFinder/utils.js.map +0 -1
@@ -1,310 +0,0 @@
1
- // Copyright 2024 The Perses Authors
2
- // Licensed under the Apache License, Version 2.0 (the "License");
3
- // you may not use this file except in compliance with the License.
4
- // You may obtain a copy of the License at
5
- //
6
- // http://www.apache.org/licenses/LICENSE-2.0
7
- //
8
- // Unless required by applicable law or agreed to in writing, software
9
- // distributed under the License is distributed on an "AS IS" BASIS,
10
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
- // See the License for the specific language governing permissions and
12
- // limitations under the License.
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", {
15
- value: true
16
- });
17
- function _export(target, all) {
18
- for(var name in all)Object.defineProperty(target, name, {
19
- enumerable: true,
20
- get: all[name]
21
- });
22
- }
23
- _export(exports, {
24
- MetricNameExplorer: function() {
25
- return MetricNameExplorer;
26
- },
27
- PrometheusMetricsFinder: function() {
28
- return PrometheusMetricsFinder;
29
- },
30
- SettingsMenu: function() {
31
- return SettingsMenu;
32
- }
33
- });
34
- const _jsxruntime = require("react/jsx-runtime");
35
- const _material = require("@mui/material");
36
- const _prometheusplugin = require("@perses-dev/prometheus-plugin");
37
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
38
- const _ArrowLeft = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/ArrowLeft"));
39
- const _Cog = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/Cog"));
40
- const _reactrouterdom = require("react-router-dom");
41
- const _fuzzy = require("@nexucis/fuzzy");
42
- const _Magnify = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/Magnify"));
43
- const _queryparams = require("../ExploreManager/query-params");
44
- const _FinderFilters = require("./filter/FinderFilters");
45
- const _MetricList = require("./display/list/MetricList");
46
- const _MetricOverview = require("./overview/MetricOverview");
47
- const _utils = require("./utils");
48
- function _interop_require_default(obj) {
49
- return obj && obj.__esModule ? obj : {
50
- default: obj
51
- };
52
- }
53
- function _getRequireWildcardCache(nodeInterop) {
54
- if (typeof WeakMap !== "function") return null;
55
- var cacheBabelInterop = new WeakMap();
56
- var cacheNodeInterop = new WeakMap();
57
- return (_getRequireWildcardCache = function(nodeInterop) {
58
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
59
- })(nodeInterop);
60
- }
61
- function _interop_require_wildcard(obj, nodeInterop) {
62
- if (!nodeInterop && obj && obj.__esModule) {
63
- return obj;
64
- }
65
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
66
- return {
67
- default: obj
68
- };
69
- }
70
- var cache = _getRequireWildcardCache(nodeInterop);
71
- if (cache && cache.has(obj)) {
72
- return cache.get(obj);
73
- }
74
- var newObj = {
75
- __proto__: null
76
- };
77
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
78
- for(var key in obj){
79
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
80
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
81
- if (desc && (desc.get || desc.set)) {
82
- Object.defineProperty(newObj, key, desc);
83
- } else {
84
- newObj[key] = obj[key];
85
- }
86
- }
87
- }
88
- newObj.default = obj;
89
- if (cache) {
90
- cache.set(obj, newObj);
91
- }
92
- return newObj;
93
- }
94
- const PERSES_METRICS_FINDER_SETTINGS = 'PERSES_METRICS_FINDER_SETTINGS';
95
- function SettingsMenu({ value, onChange }) {
96
- const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
97
- const open = Boolean(anchorEl);
98
- const handleClick = (event)=>{
99
- setAnchorEl(event.currentTarget);
100
- };
101
- const handleClose = ()=>{
102
- setAnchorEl(null);
103
- };
104
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
105
- children: [
106
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
107
- "aria-label": "settings",
108
- size: "large",
109
- onClick: handleClick,
110
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Cog.default, {})
111
- }),
112
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Menu, {
113
- id: "finder-settings-menu",
114
- anchorEl: anchorEl,
115
- open: open,
116
- onClose: handleClose,
117
- children: [
118
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
119
- onClick: (e)=>e.preventDefault(),
120
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
121
- control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Checkbox, {}),
122
- label: "Enable Metadata",
123
- checked: value.isMetadataEnabled,
124
- onClick: ()=>onChange({
125
- ...value,
126
- isMetadataEnabled: !value.isMetadataEnabled
127
- })
128
- })
129
- }),
130
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
131
- onClick: (e)=>e.preventDefault(),
132
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
133
- control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Checkbox, {}),
134
- label: "Enable Time Series Chart",
135
- checked: value.isPanelEnabled,
136
- onClick: ()=>onChange({
137
- ...value,
138
- isPanelEnabled: !value.isPanelEnabled
139
- })
140
- })
141
- })
142
- ]
143
- })
144
- ]
145
- });
146
- }
147
- function MetricNameExplorer({ datasource, filters, isMetadataEnabled, onExplore, ...props }) {
148
- const { data, isLoading, error } = (0, _utils.useLabelValues)('__name__', filters, datasource);
149
- const [search, setSearch] = (0, _react.useState)('');
150
- const fuzzy = (0, _react.useMemo)(()=>new _fuzzy.Fuzzy({
151
- includeMatches: true,
152
- excludedChars: [
153
- ' '
154
- ]
155
- }), []);
156
- const filteredResults = (0, _react.useMemo)(()=>{
157
- if (search && (data === null || data === void 0 ? void 0 : data.data)) {
158
- return fuzzy.filter(search, data.data).sort((a, b)=>b.score - a.score);
159
- }
160
- return undefined;
161
- }, [
162
- data,
163
- fuzzy,
164
- search
165
- ]);
166
- if (error) {
167
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
168
- width: "100%",
169
- children: [
170
- "Error: ",
171
- error.message
172
- ]
173
- });
174
- }
175
- if (isLoading) {
176
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
177
- width: "100%",
178
- sx: {
179
- alignItems: 'center',
180
- justifyContent: 'center'
181
- },
182
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.CircularProgress, {})
183
- });
184
- }
185
- var _data_data;
186
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
187
- ...props,
188
- children: [
189
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
190
- value: search,
191
- onChange: (e)=>setSearch(e.target.value),
192
- placeholder: "Search metric name...",
193
- InputProps: {
194
- startAdornment: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.InputAdornment, {
195
- position: "start",
196
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Magnify.default, {})
197
- })
198
- }
199
- }),
200
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_MetricList.MetricList, {
201
- metricNames: (_data_data = data === null || data === void 0 ? void 0 : data.data) !== null && _data_data !== void 0 ? _data_data : [],
202
- filteredResults: filteredResults,
203
- datasource: datasource,
204
- filters: filters,
205
- isMetadataEnabled: isMetadataEnabled,
206
- onExplore: onExplore
207
- })
208
- ]
209
- });
210
- }
211
- function PrometheusMetricsFinder({ value: { datasource = _prometheusplugin.DEFAULT_PROM, filters = [], exploredMetric }, onChange, onExplore, ...props }) {
212
- const settingsStored = localStorage.getItem(PERSES_METRICS_FINDER_SETTINGS);
213
- const [settings, setSettings] = (0, _react.useState)(settingsStored ? JSON.parse(settingsStored) : {
214
- isMetadataEnabled: true
215
- });
216
- function handleSettingsUpdate(value) {
217
- setSettings(value);
218
- localStorage.setItem(PERSES_METRICS_FINDER_SETTINGS, JSON.stringify(value));
219
- }
220
- const isMobileSize = (0, _material.useMediaQuery)((0, _material.useTheme)().breakpoints.down('md'));
221
- // Remove duplicated filters and filters without label or labelValues
222
- const filteredFilters = (0, _react.useMemo)(()=>{
223
- return filters.filter((filter)=>filter.label && filter.labelValues.length > 0);
224
- }, [
225
- filters
226
- ]);
227
- const searchParams = (0, _queryparams.useExplorerQueryParams)({
228
- data: {
229
- tab: 'finder',
230
- datasource,
231
- filters,
232
- exploredMetric: undefined
233
- }
234
- });
235
- function setDatasource(value) {
236
- onChange({
237
- datasource: value,
238
- filters,
239
- exploredMetric
240
- });
241
- }
242
- function setFilters(value) {
243
- onChange({
244
- datasource,
245
- filters: value,
246
- exploredMetric
247
- });
248
- }
249
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
250
- ...props,
251
- gap: 1,
252
- children: [
253
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
254
- direction: isMobileSize ? 'column' : 'row',
255
- gap: 2,
256
- justifyContent: "space-between",
257
- children: [
258
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_FinderFilters.FinderFilters, {
259
- datasource: datasource !== null && datasource !== void 0 ? datasource : _prometheusplugin.DEFAULT_PROM,
260
- filters: filters !== null && filters !== void 0 ? filters : [],
261
- filteredFilters: filteredFilters,
262
- onDatasourceChange: setDatasource,
263
- onFiltersChange: setFilters
264
- }),
265
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
266
- direction: "row",
267
- gap: 1,
268
- alignItems: "center",
269
- children: [
270
- exploredMetric && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
271
- variant: "contained",
272
- "aria-label": "back to metric explorer",
273
- startIcon: /*#__PURE__*/ (0, _jsxruntime.jsx)(_ArrowLeft.default, {}),
274
- component: _reactrouterdom.Link,
275
- to: `?${searchParams}`,
276
- children: "Back"
277
- }),
278
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
279
- direction: "row",
280
- sx: {
281
- width: isMobileSize ? '100%' : 'unset'
282
- },
283
- justifyContent: isMobileSize ? 'end' : 'unset',
284
- alignItems: "center",
285
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(SettingsMenu, {
286
- value: settings,
287
- onChange: handleSettingsUpdate
288
- })
289
- })
290
- ]
291
- })
292
- ]
293
- }),
294
- exploredMetric ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_MetricOverview.MetricOverview, {
295
- metricName: exploredMetric,
296
- datasource: datasource !== null && datasource !== void 0 ? datasource : _prometheusplugin.DEFAULT_PROM,
297
- filters: filteredFilters,
298
- isMetadataEnabled: settings.isMetadataEnabled,
299
- isPanelEnabled: settings.isPanelEnabled,
300
- onFiltersChange: setFilters,
301
- onExplore: onExplore
302
- }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(MetricNameExplorer, {
303
- datasource: datasource !== null && datasource !== void 0 ? datasource : _prometheusplugin.DEFAULT_PROM,
304
- filters: filteredFilters,
305
- isMetadataEnabled: settings.isMetadataEnabled,
306
- onExplore: onExplore
307
- })
308
- ]
309
- });
310
- }
@@ -1,61 +0,0 @@
1
- // Copyright 2024 The Perses Authors
2
- // Licensed under the Apache License, Version 2.0 (the "License");
3
- // you may not use this file except in compliance with the License.
4
- // You may obtain a copy of the License at
5
- //
6
- // http://www.apache.org/licenses/LICENSE-2.0
7
- //
8
- // Unless required by applicable law or agreed to in writing, software
9
- // distributed under the License is distributed on an "AS IS" BASIS,
10
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
- // See the License for the specific language governing permissions and
12
- // limitations under the License.
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", {
15
- value: true
16
- });
17
- Object.defineProperty(exports, "MetricChip", {
18
- enumerable: true,
19
- get: function() {
20
- return MetricChip;
21
- }
22
- });
23
- const _jsxruntime = require("react/jsx-runtime");
24
- const _material = require("@mui/material");
25
- function MetricChip({ label, ...props }) {
26
- if (label === 'gauge') {
27
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
28
- label: label,
29
- color: "success",
30
- ...props
31
- });
32
- }
33
- if (label === 'counter') {
34
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
35
- label: label,
36
- color: "primary",
37
- ...props
38
- });
39
- }
40
- if (label === 'histogram') {
41
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
42
- label: label,
43
- color: "warning",
44
- ...props
45
- });
46
- }
47
- if (label === 'summary') {
48
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
49
- label: label,
50
- color: "secondary",
51
- ...props
52
- });
53
- }
54
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
55
- label: label,
56
- sx: {
57
- fontStyle: label === 'unknown' ? 'italic' : 'initial'
58
- },
59
- ...props
60
- });
61
- }
@@ -1,224 +0,0 @@
1
- // Copyright 2024 The Perses Authors
2
- // Licensed under the Apache License, Version 2.0 (the "License");
3
- // you may not use this file except in compliance with the License.
4
- // You may obtain a copy of the License at
5
- //
6
- // http://www.apache.org/licenses/LICENSE-2.0
7
- //
8
- // Unless required by applicable law or agreed to in writing, software
9
- // distributed under the License is distributed on an "AS IS" BASIS,
10
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
- // See the License for the specific language governing permissions and
12
- // limitations under the License.
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", {
15
- value: true
16
- });
17
- function _export(target, all) {
18
- for(var name in all)Object.defineProperty(target, name, {
19
- enumerable: true,
20
- get: all[name]
21
- });
22
- }
23
- _export(exports, {
24
- MetricList: function() {
25
- return MetricList;
26
- },
27
- MetricRow: function() {
28
- return MetricRow;
29
- }
30
- });
31
- const _jsxruntime = require("react/jsx-runtime");
32
- const _material = require("@mui/material");
33
- const _reactvirtuoso = require("react-virtuoso");
34
- const _reactrouterdom = require("react-router-dom");
35
- const _Compass = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/Compass"));
36
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
37
- const _fuzzy = require("@nexucis/fuzzy");
38
- const _utils = require("../../utils");
39
- const _queryparams = require("../../../ExploreManager/query-params");
40
- const _MetricChip = require("../MetricChip");
41
- function _interop_require_default(obj) {
42
- return obj && obj.__esModule ? obj : {
43
- default: obj
44
- };
45
- }
46
- function _getRequireWildcardCache(nodeInterop) {
47
- if (typeof WeakMap !== "function") return null;
48
- var cacheBabelInterop = new WeakMap();
49
- var cacheNodeInterop = new WeakMap();
50
- return (_getRequireWildcardCache = function(nodeInterop) {
51
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
52
- })(nodeInterop);
53
- }
54
- function _interop_require_wildcard(obj, nodeInterop) {
55
- if (!nodeInterop && obj && obj.__esModule) {
56
- return obj;
57
- }
58
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
59
- return {
60
- default: obj
61
- };
62
- }
63
- var cache = _getRequireWildcardCache(nodeInterop);
64
- if (cache && cache.has(obj)) {
65
- return cache.get(obj);
66
- }
67
- var newObj = {
68
- __proto__: null
69
- };
70
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
71
- for(var key in obj){
72
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
73
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
74
- if (desc && (desc.get || desc.set)) {
75
- Object.defineProperty(newObj, key, desc);
76
- } else {
77
- newObj[key] = obj[key];
78
- }
79
- }
80
- }
81
- newObj.default = obj;
82
- if (cache) {
83
- cache.set(obj, newObj);
84
- }
85
- return newObj;
86
- }
87
- function MetricRow({ children, metricName, datasource, filters, isMetadataEnabled, onExplore }) {
88
- const { metadata, isLoading } = (0, _utils.useMetricMetadata)(metricName, datasource, isMetadataEnabled);
89
- const searchParams = (0, _queryparams.useExplorerQueryParams)({
90
- data: {
91
- tab: 'finder',
92
- datasource,
93
- filters,
94
- exploredMetric: metricName
95
- }
96
- });
97
- var _metadata_type;
98
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
99
- children: [
100
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
101
- style: {
102
- width: '300px'
103
- },
104
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
105
- sx: {
106
- fontFamily: 'monospace'
107
- },
108
- children: children !== null && children !== void 0 ? children : metricName
109
- })
110
- }),
111
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
112
- style: {
113
- width: 115,
114
- textAlign: 'center'
115
- },
116
- children: isMetadataEnabled && isLoading ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Skeleton, {
117
- variant: "rounded",
118
- width: 75
119
- }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_MetricChip.MetricChip, {
120
- label: (_metadata_type = metadata === null || metadata === void 0 ? void 0 : metadata.type) !== null && _metadata_type !== void 0 ? _metadata_type : 'unknown'
121
- })
122
- }),
123
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
124
- style: {
125
- width: '100%'
126
- },
127
- children: isMetadataEnabled && isLoading ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Skeleton, {
128
- variant: "text",
129
- width: 180
130
- }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
131
- sx: {
132
- fontStyle: (metadata === null || metadata === void 0 ? void 0 : metadata.help) ? 'initial' : 'italic',
133
- minWidth: '30vw'
134
- },
135
- children: metadata ? metadata.help : 'unknown'
136
- })
137
- }),
138
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
139
- style: {
140
- width: 140
141
- },
142
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
143
- "aria-label": `explore metric ${metricName}`,
144
- variant: "contained",
145
- startIcon: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Compass.default, {}),
146
- style: {
147
- textWrap: 'nowrap'
148
- },
149
- onClick: ()=>onExplore === null || onExplore === void 0 ? void 0 : onExplore(metricName),
150
- component: _reactrouterdom.Link,
151
- to: `?${searchParams}`,
152
- children: "Explore"
153
- })
154
- })
155
- ]
156
- });
157
- }
158
- function MetricList({ metricNames, filteredResults, datasource, filters, isMetadataEnabled, onExplore, ...props }) {
159
- const fuzzy = new _fuzzy.Fuzzy();
160
- const fuzzyMetrics = (0, _react.useMemo)(()=>{
161
- if (filteredResults) {
162
- return filteredResults;
163
- }
164
- return metricNames.map((metricName)=>({
165
- original: metricName
166
- }));
167
- }, [
168
- filteredResults,
169
- metricNames
170
- ]);
171
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
172
- gap: 2,
173
- width: "100%",
174
- divider: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Divider, {
175
- orientation: "horizontal",
176
- flexItem: true
177
- }),
178
- ...props,
179
- children: [
180
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactvirtuoso.TableVirtuoso, {
181
- style: {
182
- height: '70vh',
183
- width: '100%'
184
- },
185
- totalCount: fuzzyMetrics.length,
186
- itemContent: (index)=>{
187
- var _fuzzyMetrics_index_intervals;
188
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(MetricRow, {
189
- metricName: fuzzyMetrics[index].original,
190
- datasource: datasource,
191
- filters: filters,
192
- isMetadataEnabled: isMetadataEnabled,
193
- onExplore: onExplore,
194
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
195
- dangerouslySetInnerHTML: {
196
- __html: fuzzy.render(fuzzyMetrics[index].original, (_fuzzyMetrics_index_intervals = fuzzyMetrics[index].intervals) !== null && _fuzzyMetrics_index_intervals !== void 0 ? _fuzzyMetrics_index_intervals : [], {
197
- pre: '<strong style="color:darkorange">',
198
- post: '</strong>',
199
- escapeHTML: true
200
- })
201
- }
202
- })
203
- });
204
- }
205
- }),
206
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
207
- sx: {
208
- width: '100%'
209
- },
210
- textAlign: "end",
211
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Typography, {
212
- "data-testid": "finder-total",
213
- children: [
214
- "Total: ",
215
- /*#__PURE__*/ (0, _jsxruntime.jsx)("strong", {
216
- children: metricNames.length
217
- }),
218
- " metrics"
219
- ]
220
- })
221
- })
222
- ]
223
- });
224
- }