@perses-dev/logs-table-plugin 0.1.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.
- package/LICENSE +201 -0
- package/README.md +41 -0
- package/__mf/css/async/2341.d3010b86.css +1 -0
- package/__mf/css/async/5263.d3010b86.css +1 -0
- package/__mf/css/async/6759.d3010b86.css +1 -0
- package/__mf/font/lato-all-300-normal.322bdf14.woff +0 -0
- package/__mf/font/lato-all-400-normal.63513b00.woff +0 -0
- package/__mf/font/lato-all-700-normal.bb27db94.woff +0 -0
- package/__mf/font/lato-all-900-normal.a27049a3.woff +0 -0
- package/__mf/font/lato-latin-300-normal.c5195215.woff2 +0 -0
- package/__mf/font/lato-latin-400-normal.b7ffde23.woff2 +0 -0
- package/__mf/font/lato-latin-700-normal.d5eb20bc.woff2 +0 -0
- package/__mf/font/lato-latin-900-normal.d884a71c.woff2 +0 -0
- package/__mf/font/lato-latin-ext-300-normal.abcc64a9.woff2 +0 -0
- package/__mf/font/lato-latin-ext-400-normal.6ebed106.woff2 +0 -0
- package/__mf/font/lato-latin-ext-700-normal.8697d1d5.woff2 +0 -0
- package/__mf/font/lato-latin-ext-900-normal.20a2b415.woff2 +0 -0
- package/__mf/js/LogsTable.a40d0de0.js +5 -0
- package/__mf/js/async/1143.f9fce74a.js +1 -0
- package/__mf/js/async/1553.9685a45a.js +1 -0
- package/__mf/js/async/1640.45bfe57d.js +1 -0
- package/__mf/js/async/1964.ad38a6aa.js +2 -0
- package/__mf/js/async/1964.ad38a6aa.js.LICENSE.txt +9 -0
- package/__mf/js/async/2292.0c8c55a4.js +2 -0
- package/__mf/js/async/2292.0c8c55a4.js.LICENSE.txt +24 -0
- package/__mf/js/async/2641.888f4d12.js +1 -0
- package/__mf/js/async/2651.c6ed9c77.js +1 -0
- package/__mf/js/async/2836.59bc5080.js +22 -0
- package/__mf/js/async/2836.59bc5080.js.LICENSE.txt +9 -0
- package/__mf/js/async/2849.eafadb0f.js +2 -0
- package/__mf/js/async/2849.eafadb0f.js.LICENSE.txt +37 -0
- package/__mf/js/async/3224.dc93eeb9.js +1 -0
- package/__mf/js/async/3474.cee21897.js +1 -0
- package/__mf/js/async/3863.98efb1d2.js +2 -0
- package/__mf/js/async/3863.98efb1d2.js.LICENSE.txt +9 -0
- package/__mf/js/async/3960.a5f4b6df.js +2 -0
- package/__mf/js/async/3960.a5f4b6df.js.LICENSE.txt +8 -0
- package/__mf/js/async/4062.75b22d96.js +1 -0
- package/__mf/js/async/4075.3f3a9fce.js +1 -0
- package/__mf/js/async/4168.4ce3a017.js +2 -0
- package/__mf/js/async/4238.3f9124d4.js +1 -0
- package/__mf/js/async/5214.4ce95313.js +1 -0
- package/__mf/js/async/5409.360142aa.js +1 -0
- package/__mf/js/async/5981.ef618ada.js +2 -0
- package/__mf/js/async/5981.ef618ada.js.LICENSE.txt +8 -0
- package/__mf/js/async/6292.7a6b1e5f.js +1 -0
- package/__mf/js/async/6569.74fed404.js +1 -0
- package/__mf/js/async/6770.344b116a.js +1 -0
- package/__mf/js/async/694.f6a520bb.js +1 -0
- package/__mf/js/async/6981.aaaaabbb.js +110 -0
- package/__mf/js/async/6981.aaaaabbb.js.LICENSE.txt +27 -0
- package/__mf/js/async/711.d4a39c83.js +1 -0
- package/__mf/js/async/738.1432e533.js +1 -0
- package/__mf/js/async/7482.e107e534.js +2 -0
- package/__mf/js/async/7482.e107e534.js.LICENSE.txt +9 -0
- package/__mf/js/async/7623.43e701ce.js +1 -0
- package/__mf/js/async/7740.213e06a7.js +1 -0
- package/__mf/js/async/8488.c1d50599.js +1 -0
- package/__mf/js/async/9173.947266e0.js +2 -0
- package/__mf/js/async/9173.947266e0.js.LICENSE.txt +19 -0
- package/__mf/js/async/9370.e9cdeb7d.js +7 -0
- package/__mf/js/async/9370.e9cdeb7d.js.LICENSE.txt +21 -0
- package/__mf/js/async/9815.6b212862.js +37 -0
- package/__mf/js/async/__federation_expose_LogsTable.86c05a98.js +1 -0
- package/__mf/js/async/lib-router.c75d9d73.js +2 -0
- package/__mf/js/async/lib-router.c75d9d73.js.LICENSE.txt +32 -0
- package/__mf/js/main.3283cbfb.js +5 -0
- package/lib/LogsTable.d.ts +4 -0
- package/lib/LogsTable.d.ts.map +1 -0
- package/lib/LogsTable.js +33 -0
- package/lib/LogsTable.js.map +1 -0
- package/lib/LogsTableComponent.d.ts +4 -0
- package/lib/LogsTableComponent.d.ts.map +1 -0
- package/lib/LogsTableComponent.js +35 -0
- package/lib/LogsTableComponent.js.map +1 -0
- package/lib/LogsTablePanel.d.ts +4 -0
- package/lib/LogsTablePanel.d.ts.map +1 -0
- package/lib/LogsTablePanel.js +34 -0
- package/lib/LogsTablePanel.js.map +1 -0
- package/lib/LogsTableSettingsEditor.d.ts +7 -0
- package/lib/LogsTableSettingsEditor.d.ts.map +1 -0
- package/lib/LogsTableSettingsEditor.js +49 -0
- package/lib/LogsTableSettingsEditor.js.map +1 -0
- package/lib/bootstrap.d.ts +2 -0
- package/lib/bootstrap.d.ts.map +1 -0
- package/lib/bootstrap.js +19 -0
- package/lib/bootstrap.js.map +1 -0
- package/lib/cjs/LogsTable.js +41 -0
- package/lib/cjs/LogsTableComponent.js +43 -0
- package/lib/cjs/LogsTablePanel.js +42 -0
- package/lib/cjs/LogsTableSettingsEditor.js +57 -0
- package/lib/cjs/bootstrap.js +26 -0
- package/lib/cjs/components/EmptyLogsState.js +49 -0
- package/lib/cjs/components/LogRow/LogDetailsTable.js +71 -0
- package/lib/cjs/components/LogRow/LogRow.js +163 -0
- package/lib/cjs/components/LogRow/LogTimestamp.js +44 -0
- package/lib/cjs/components/LogRow/LogsStyles.js +85 -0
- package/lib/cjs/components/LogRow/index.js +37 -0
- package/lib/cjs/components/LogsList.js +44 -0
- package/lib/cjs/components/VirtualizedLogsList.js +64 -0
- package/lib/cjs/components/hooks/useExpandedRows.js +45 -0
- package/lib/cjs/env.d.js +14 -0
- package/lib/cjs/getPluginModule.js +27 -0
- package/lib/cjs/index-federation.js +55 -0
- package/lib/cjs/index.js +26 -0
- package/lib/cjs/model.js +16 -0
- package/lib/cjs/setup-tests.js +19 -0
- package/lib/cjs/test/mock-query-results.js +76 -0
- package/lib/components/EmptyLogsState.d.ts +7 -0
- package/lib/components/EmptyLogsState.d.ts.map +1 -0
- package/lib/components/EmptyLogsState.js +36 -0
- package/lib/components/EmptyLogsState.js.map +1 -0
- package/lib/components/LogRow/LogDetailsTable.d.ts +8 -0
- package/lib/components/LogRow/LogDetailsTable.d.ts.map +1 -0
- package/lib/components/LogRow/LogDetailsTable.js +58 -0
- package/lib/components/LogRow/LogDetailsTable.js.map +1 -0
- package/lib/components/LogRow/LogRow.d.ts +14 -0
- package/lib/components/LogRow/LogRow.d.ts.map +1 -0
- package/lib/components/LogRow/LogRow.js +109 -0
- package/lib/components/LogRow/LogRow.js.map +1 -0
- package/lib/components/LogRow/LogTimestamp.d.ts +7 -0
- package/lib/components/LogRow/LogTimestamp.d.ts.map +1 -0
- package/lib/components/LogRow/LogTimestamp.js +31 -0
- package/lib/components/LogRow/LogTimestamp.js.map +1 -0
- package/lib/components/LogRow/LogsStyles.d.ts +21 -0
- package/lib/components/LogRow/LogsStyles.d.ts.map +1 -0
- package/lib/components/LogRow/LogsStyles.js +63 -0
- package/lib/components/LogRow/LogsStyles.js.map +1 -0
- package/lib/components/LogRow/index.d.ts +3 -0
- package/lib/components/LogRow/index.d.ts.map +1 -0
- package/lib/components/LogRow/index.js +16 -0
- package/lib/components/LogRow/index.js.map +1 -0
- package/lib/components/LogsList.d.ts +10 -0
- package/lib/components/LogsList.d.ts.map +1 -0
- package/lib/components/LogsList.js +31 -0
- package/lib/components/LogsList.js.map +1 -0
- package/lib/components/VirtualizedLogsList.d.ts +12 -0
- package/lib/components/VirtualizedLogsList.d.ts.map +1 -0
- package/lib/components/VirtualizedLogsList.js +51 -0
- package/lib/components/VirtualizedLogsList.js.map +1 -0
- package/lib/components/hooks/useExpandedRows.d.ts +6 -0
- package/lib/components/hooks/useExpandedRows.d.ts.map +1 -0
- package/lib/components/hooks/useExpandedRows.js +37 -0
- package/lib/components/hooks/useExpandedRows.js.map +1 -0
- package/lib/env.d.js +15 -0
- package/lib/env.d.js.map +1 -0
- package/lib/getPluginModule.d.ts +6 -0
- package/lib/getPluginModule.d.ts.map +1 -0
- package/lib/getPluginModule.js +16 -0
- package/lib/getPluginModule.js.map +1 -0
- package/lib/index-federation.d.ts +1 -0
- package/lib/index-federation.d.ts.map +1 -0
- package/lib/index-federation.js +15 -0
- package/lib/index-federation.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/model.d.ts +15 -0
- package/lib/model.d.ts.map +1 -0
- package/lib/model.js +15 -0
- package/lib/model.js.map +1 -0
- package/lib/setup-tests.d.ts +2 -0
- package/lib/setup-tests.d.ts.map +1 -0
- package/lib/setup-tests.js +17 -0
- package/lib/setup-tests.js.map +1 -0
- package/lib/test/mock-query-results.d.ts +14 -0
- package/lib/test/mock-query-results.d.ts.map +1 -0
- package/lib/test/mock-query-results.js +60 -0
- package/lib/test/mock-query-results.js.map +1 -0
- package/mf-manifest.json +336 -0
- package/mf-stats.json +390 -0
- package/package.json +61 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Copyright 2025 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, "VirtualizedLogsList", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function() {
|
|
20
|
+
return VirtualizedLogsList;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const _jsxruntime = require("react/jsx-runtime");
|
|
24
|
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
|
25
|
+
const _material = require("@mui/material");
|
|
26
|
+
const _reactvirtuoso = require("react-virtuoso");
|
|
27
|
+
const _LogRow = require("./LogRow/LogRow");
|
|
28
|
+
function _interop_require_default(obj) {
|
|
29
|
+
return obj && obj.__esModule ? obj : {
|
|
30
|
+
default: obj
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const VirtualizedLogsList = ({ logs, spec, expandedRows, onToggleExpand })=>{
|
|
34
|
+
const theme = (0, _material.useTheme)();
|
|
35
|
+
const renderLogRow = (index)=>{
|
|
36
|
+
const log = logs[index];
|
|
37
|
+
if (!log) return null;
|
|
38
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_LogRow.LogRow, {
|
|
39
|
+
isExpandable: spec.enableDetails,
|
|
40
|
+
log: log,
|
|
41
|
+
index: index,
|
|
42
|
+
isExpanded: expandedRows.has(index),
|
|
43
|
+
onToggle: onToggleExpand,
|
|
44
|
+
allowWrap: spec.allowWrap,
|
|
45
|
+
showTime: spec.showTime
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
|
|
49
|
+
sx: {
|
|
50
|
+
height: '100%',
|
|
51
|
+
backgroundColor: theme.palette.background.default,
|
|
52
|
+
overflow: 'hidden',
|
|
53
|
+
boxShadow: theme.shadows[1]
|
|
54
|
+
},
|
|
55
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactvirtuoso.Virtuoso, {
|
|
56
|
+
style: {
|
|
57
|
+
height: '100%'
|
|
58
|
+
},
|
|
59
|
+
initialItemCount: spec.showAll ? logs.length : undefined,
|
|
60
|
+
totalCount: logs.length,
|
|
61
|
+
itemContent: renderLogRow
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Copyright 2025 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, "useExpandedRows", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function() {
|
|
20
|
+
return useExpandedRows;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const _react = require("react");
|
|
24
|
+
const useExpandedRows = ()=>{
|
|
25
|
+
const [expandedRows, setExpandedRows] = (0, _react.useState)(new Set());
|
|
26
|
+
const toggleExpand = (0, _react.useCallback)((index)=>{
|
|
27
|
+
setExpandedRows((prev)=>{
|
|
28
|
+
const newSet = new Set(prev);
|
|
29
|
+
if (newSet.has(index)) {
|
|
30
|
+
newSet.delete(index);
|
|
31
|
+
} else {
|
|
32
|
+
newSet.add(index);
|
|
33
|
+
}
|
|
34
|
+
return newSet;
|
|
35
|
+
});
|
|
36
|
+
}, []);
|
|
37
|
+
const clearExpanded = (0, _react.useCallback)(()=>{
|
|
38
|
+
setExpandedRows(new Set());
|
|
39
|
+
}, []);
|
|
40
|
+
return {
|
|
41
|
+
expandedRows,
|
|
42
|
+
toggleExpand,
|
|
43
|
+
clearExpanded
|
|
44
|
+
};
|
|
45
|
+
};
|
package/lib/cjs/env.d.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright 2025 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
|
+
/// <reference types="@rsbuild/core/types" />
|
|
14
|
+
"use strict";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "getPluginModule", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return getPluginModule;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _packagejson = /*#__PURE__*/ _interop_require_default(require("../package.json"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function getPluginModule() {
|
|
18
|
+
const { name, version, perses } = _packagejson.default;
|
|
19
|
+
return {
|
|
20
|
+
kind: 'PluginModule',
|
|
21
|
+
metadata: {
|
|
22
|
+
name,
|
|
23
|
+
version
|
|
24
|
+
},
|
|
25
|
+
spec: perses
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Copyright 2025 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
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
15
|
+
if (typeof WeakMap !== "function") return null;
|
|
16
|
+
var cacheBabelInterop = new WeakMap();
|
|
17
|
+
var cacheNodeInterop = new WeakMap();
|
|
18
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
19
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
20
|
+
})(nodeInterop);
|
|
21
|
+
}
|
|
22
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
23
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
24
|
+
return obj;
|
|
25
|
+
}
|
|
26
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
27
|
+
return {
|
|
28
|
+
default: obj
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
32
|
+
if (cache && cache.has(obj)) {
|
|
33
|
+
return cache.get(obj);
|
|
34
|
+
}
|
|
35
|
+
var newObj = {
|
|
36
|
+
__proto__: null
|
|
37
|
+
};
|
|
38
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
39
|
+
for(var key in obj){
|
|
40
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
41
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
42
|
+
if (desc && (desc.get || desc.set)) {
|
|
43
|
+
Object.defineProperty(newObj, key, desc);
|
|
44
|
+
} else {
|
|
45
|
+
newObj[key] = obj[key];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
newObj.default = obj;
|
|
50
|
+
if (cache) {
|
|
51
|
+
cache.set(obj, newObj);
|
|
52
|
+
}
|
|
53
|
+
return newObj;
|
|
54
|
+
}
|
|
55
|
+
Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./bootstrap")));
|
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "getPluginModule", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _getPluginModule.getPluginModule;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _getPluginModule = require("./getPluginModule");
|
|
12
|
+
_export_star(require("./model"), exports);
|
|
13
|
+
_export_star(require("./LogsTable"), exports);
|
|
14
|
+
function _export_star(from, to) {
|
|
15
|
+
Object.keys(from).forEach(function(k) {
|
|
16
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
17
|
+
Object.defineProperty(to, k, {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function() {
|
|
20
|
+
return from[k];
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return from;
|
|
26
|
+
}
|
package/lib/cjs/model.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Copyright 2025 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
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Copyright 2025 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
|
+
require("@testing-library/jest-dom");
|
|
18
|
+
// Always mock e-charts during tests since we don't have a proper canvas in jsdom
|
|
19
|
+
jest.mock('echarts/core');
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// Copyright 2025 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
|
+
MOCK_LOGS_QUERY_DEFINITION: function() {
|
|
25
|
+
return MOCK_LOGS_QUERY_DEFINITION;
|
|
26
|
+
},
|
|
27
|
+
MOCK_LOGS_QUERY_RESULT: function() {
|
|
28
|
+
return MOCK_LOGS_QUERY_RESULT;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
const MOCK_LOGS_QUERY_RESULT = {
|
|
32
|
+
logs: {
|
|
33
|
+
hasMore: false,
|
|
34
|
+
timeRange: {
|
|
35
|
+
start: new Date(1666625490),
|
|
36
|
+
end: new Date(1666625535)
|
|
37
|
+
},
|
|
38
|
+
entries: [
|
|
39
|
+
{
|
|
40
|
+
timestamp: 1666625490,
|
|
41
|
+
line: 'foo',
|
|
42
|
+
labels: {
|
|
43
|
+
device: '/dev/vda1',
|
|
44
|
+
env: 'demo',
|
|
45
|
+
fstype: 'ext4',
|
|
46
|
+
instance: 'demo.do.prometheus.io:9100',
|
|
47
|
+
job: 'node',
|
|
48
|
+
mountpoint: '/'
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
timestamp: 1666625491,
|
|
53
|
+
line: 'bar',
|
|
54
|
+
labels: {
|
|
55
|
+
device: '/dev/vda15',
|
|
56
|
+
env: 'demo',
|
|
57
|
+
fstype: 'vfat',
|
|
58
|
+
instance: 'demo.do.prometheus.io:9100',
|
|
59
|
+
job: 'node',
|
|
60
|
+
mountpoint: '/boot/efi'
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const MOCK_LOGS_QUERY_DEFINITION = {
|
|
67
|
+
kind: 'LogsQuery',
|
|
68
|
+
spec: {
|
|
69
|
+
plugin: {
|
|
70
|
+
kind: 'LokiLogsQuery',
|
|
71
|
+
spec: {
|
|
72
|
+
query: ''
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyLogsState.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyLogsState.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,mBAAmB;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuBxD,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Copyright 2025 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
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
import React from 'react';
|
|
15
|
+
import { Box, Typography, useTheme } from '@mui/material';
|
|
16
|
+
export const EmptyLogsState = ({ message = 'No logs to display' })=>{
|
|
17
|
+
const theme = useTheme();
|
|
18
|
+
return /*#__PURE__*/ _jsx(Box, {
|
|
19
|
+
sx: {
|
|
20
|
+
display: 'flex',
|
|
21
|
+
alignItems: 'center',
|
|
22
|
+
justifyContent: 'center',
|
|
23
|
+
height: '200px'
|
|
24
|
+
},
|
|
25
|
+
children: /*#__PURE__*/ _jsx(Typography, {
|
|
26
|
+
variant: "body2",
|
|
27
|
+
sx: {
|
|
28
|
+
color: theme.palette.text.secondary,
|
|
29
|
+
fontSize: '14px'
|
|
30
|
+
},
|
|
31
|
+
children: message
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=EmptyLogsState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/EmptyLogsState.tsx"],"sourcesContent":["// Copyright 2025 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { Box, Typography, useTheme } from '@mui/material';\n\ninterface EmptyLogsStateProps {\n message?: string;\n}\n\nexport const EmptyLogsState: React.FC<EmptyLogsStateProps> = ({ message = 'No logs to display' }) => {\n const theme = useTheme();\n\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '200px',\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{\n color: theme.palette.text.secondary,\n fontSize: '14px',\n }}\n >\n {message}\n </Typography>\n </Box>\n );\n};\n"],"names":["React","Box","Typography","useTheme","EmptyLogsState","message","theme","sx","display","alignItems","justifyContent","height","variant","color","palette","text","secondary","fontSize"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAEjC,OAAOA,WAAW,QAAQ;AAC1B,SAASC,GAAG,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,gBAAgB;AAM1D,OAAO,MAAMC,iBAAgD,CAAC,EAAEC,UAAU,oBAAoB,EAAE;IAC9F,MAAMC,QAAQH;IAEd,qBACE,KAACF;QACCM,IAAI;YACFC,SAAS;YACTC,YAAY;YACZC,gBAAgB;YAChBC,QAAQ;QACV;kBAEA,cAAA,KAACT;YACCU,SAAQ;YACRL,IAAI;gBACFM,OAAOP,MAAMQ,OAAO,CAACC,IAAI,CAACC,SAAS;gBACnCC,UAAU;YACZ;sBAECZ;;;AAIT,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogDetailsTable.d.ts","sourceRoot":"","sources":["../../../../src/components/LogRow/LogDetailsTable.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,UAAU,oBAAoB;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgD1D,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// Copyright 2025 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
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
+
import React from 'react';
|
|
15
|
+
import { Table, TableBody, TableRow, TableCell, useTheme, alpha } from '@mui/material';
|
|
16
|
+
export const LogDetailsTable = ({ log })=>{
|
|
17
|
+
const theme = useTheme();
|
|
18
|
+
return /*#__PURE__*/ _jsx(Table, {
|
|
19
|
+
size: "small",
|
|
20
|
+
sx: {
|
|
21
|
+
border: `1px solid ${theme.palette.divider}`,
|
|
22
|
+
'& .MuiTableCell-root': {
|
|
23
|
+
border: 'none',
|
|
24
|
+
padding: '6px 8px',
|
|
25
|
+
fontSize: '12px'
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
children: /*#__PURE__*/ _jsx(TableBody, {
|
|
29
|
+
children: Object.entries(log).map(([key, value])=>/*#__PURE__*/ _jsxs(TableRow, {
|
|
30
|
+
sx: {
|
|
31
|
+
'&:hover': {
|
|
32
|
+
backgroundColor: alpha(theme.palette.action.hover, 0.04)
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
children: [
|
|
36
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
37
|
+
sx: {
|
|
38
|
+
color: theme.palette.text.secondary,
|
|
39
|
+
fontWeight: 500,
|
|
40
|
+
width: '33%'
|
|
41
|
+
},
|
|
42
|
+
children: key
|
|
43
|
+
}),
|
|
44
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
45
|
+
sx: {
|
|
46
|
+
color: theme.palette.text.primary,
|
|
47
|
+
wordBreak: 'break-word',
|
|
48
|
+
width: '67%'
|
|
49
|
+
},
|
|
50
|
+
children: value !== undefined && value !== null && value !== '' ? value : '--'
|
|
51
|
+
})
|
|
52
|
+
]
|
|
53
|
+
}, key))
|
|
54
|
+
})
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=LogDetailsTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/LogRow/LogDetailsTable.tsx"],"sourcesContent":["// Copyright 2025 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { Table, TableBody, TableRow, TableCell, useTheme, alpha } from '@mui/material';\nimport { Labels } from '@perses-dev/core';\n\ninterface LogDetailsTableProps {\n log: Labels;\n}\n\nexport const LogDetailsTable: React.FC<LogDetailsTableProps> = ({ log }) => {\n const theme = useTheme();\n\n return (\n <Table\n size=\"small\"\n sx={{\n border: `1px solid ${theme.palette.divider}`,\n '& .MuiTableCell-root': {\n border: 'none',\n padding: '6px 8px',\n fontSize: '12px',\n },\n }}\n >\n <TableBody>\n {Object.entries(log).map(([key, value]) => (\n <TableRow\n key={key}\n sx={{\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.hover, 0.04),\n },\n }}\n >\n <TableCell\n sx={{\n color: theme.palette.text.secondary,\n fontWeight: 500,\n width: '33%',\n }}\n >\n {key}\n </TableCell>\n <TableCell\n sx={{\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n width: '67%',\n }}\n >\n {value !== undefined && value !== null && value !== '' ? value : '--'}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n};\n"],"names":["React","Table","TableBody","TableRow","TableCell","useTheme","alpha","LogDetailsTable","log","theme","size","sx","border","palette","divider","padding","fontSize","Object","entries","map","key","value","backgroundColor","action","hover","color","text","secondary","fontWeight","width","primary","wordBreak","undefined"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAEjC,OAAOA,WAAW,QAAQ;AAC1B,SAASC,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,KAAK,QAAQ,gBAAgB;AAOvF,OAAO,MAAMC,kBAAkD,CAAC,EAAEC,GAAG,EAAE;IACrE,MAAMC,QAAQJ;IAEd,qBACE,KAACJ;QACCS,MAAK;QACLC,IAAI;YACFC,QAAQ,CAAC,UAAU,EAAEH,MAAMI,OAAO,CAACC,OAAO,EAAE;YAC5C,wBAAwB;gBACtBF,QAAQ;gBACRG,SAAS;gBACTC,UAAU;YACZ;QACF;kBAEA,cAAA,KAACd;sBACEe,OAAOC,OAAO,CAACV,KAAKW,GAAG,CAAC,CAAC,CAACC,KAAKC,MAAM,iBACpC,MAAClB;oBAECQ,IAAI;wBACF,WAAW;4BACTW,iBAAiBhB,MAAMG,MAAMI,OAAO,CAACU,MAAM,CAACC,KAAK,EAAE;wBACrD;oBACF;;sCAEA,KAACpB;4BACCO,IAAI;gCACFc,OAAOhB,MAAMI,OAAO,CAACa,IAAI,CAACC,SAAS;gCACnCC,YAAY;gCACZC,OAAO;4BACT;sCAECT;;sCAEH,KAAChB;4BACCO,IAAI;gCACFc,OAAOhB,MAAMI,OAAO,CAACa,IAAI,CAACI,OAAO;gCACjCC,WAAW;gCACXF,OAAO;4BACT;sCAECR,UAAUW,aAAaX,UAAU,QAAQA,UAAU,KAAKA,QAAQ;;;mBAvB9DD;;;AA8BjB,EAAE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { LogEntry } from '@perses-dev/core';
|
|
3
|
+
interface LogRowProps {
|
|
4
|
+
log?: LogEntry;
|
|
5
|
+
index: number;
|
|
6
|
+
isExpanded: boolean;
|
|
7
|
+
onToggle: (index: number) => void;
|
|
8
|
+
isExpandable?: boolean;
|
|
9
|
+
showTime?: boolean;
|
|
10
|
+
allowWrap?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const LogRow: React.NamedExoticComponent<LogRowProps>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=LogRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogRow.d.ts","sourceRoot":"","sources":["../../../../src/components/LogRow/LogRow.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK5C,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAgFD,eAAO,MAAM,MAAM,yCAAsB,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// Copyright 2025 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
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
14
|
+
import React, { memo, useCallback } from 'react';
|
|
15
|
+
import { Box, Collapse, useTheme } from '@mui/material';
|
|
16
|
+
import ChevronRight from 'mdi-material-ui/ChevronRight';
|
|
17
|
+
import { LogTimestamp } from './LogTimestamp';
|
|
18
|
+
import { LogRowContainer, LogRowContent, ExpandButton, LogText } from './LogsStyles';
|
|
19
|
+
import { LogDetailsTable } from './LogDetailsTable';
|
|
20
|
+
const DefaultLogRow = ({ log, isExpanded, index, onToggle, isExpandable = true, showTime = false, allowWrap = false })=>{
|
|
21
|
+
const theme = useTheme();
|
|
22
|
+
const severityColor = theme.palette.text.secondary;
|
|
23
|
+
const handleToggle = useCallback(()=>{
|
|
24
|
+
if (isExpandable) {
|
|
25
|
+
onToggle(index);
|
|
26
|
+
}
|
|
27
|
+
}, [
|
|
28
|
+
isExpandable,
|
|
29
|
+
onToggle,
|
|
30
|
+
index
|
|
31
|
+
]);
|
|
32
|
+
if (!log) return null;
|
|
33
|
+
return /*#__PURE__*/ _jsxs(LogRowContainer, {
|
|
34
|
+
severityColor: severityColor,
|
|
35
|
+
children: [
|
|
36
|
+
/*#__PURE__*/ _jsxs(LogRowContent, {
|
|
37
|
+
onClick: handleToggle,
|
|
38
|
+
isExpandable: isExpandable,
|
|
39
|
+
children: [
|
|
40
|
+
isExpandable && /*#__PURE__*/ _jsx(Box, {
|
|
41
|
+
sx: {
|
|
42
|
+
display: 'flex',
|
|
43
|
+
alignItems: 'center',
|
|
44
|
+
width: '16px',
|
|
45
|
+
justifyContent: 'center'
|
|
46
|
+
},
|
|
47
|
+
children: /*#__PURE__*/ _jsx(ExpandButton, {
|
|
48
|
+
size: "small",
|
|
49
|
+
isExpanded: isExpanded,
|
|
50
|
+
children: /*#__PURE__*/ _jsx(ChevronRight, {
|
|
51
|
+
sx: {
|
|
52
|
+
fontSize: '12px'
|
|
53
|
+
}
|
|
54
|
+
})
|
|
55
|
+
})
|
|
56
|
+
}),
|
|
57
|
+
/*#__PURE__*/ _jsx(LogTimestamp, {
|
|
58
|
+
timestamp: log.timestamp
|
|
59
|
+
}),
|
|
60
|
+
/*#__PURE__*/ _jsx(Box, {
|
|
61
|
+
sx: {
|
|
62
|
+
display: 'flex',
|
|
63
|
+
gap: '10px',
|
|
64
|
+
marginLeft: '36px'
|
|
65
|
+
},
|
|
66
|
+
children: /*#__PURE__*/ _jsx(LogText, {
|
|
67
|
+
variant: "body2",
|
|
68
|
+
allowWrap: allowWrap,
|
|
69
|
+
children: log.line
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
]
|
|
73
|
+
}),
|
|
74
|
+
/*#__PURE__*/ _jsx(Collapse, {
|
|
75
|
+
in: isExpanded,
|
|
76
|
+
timeout: 200,
|
|
77
|
+
children: /*#__PURE__*/ _jsx(Box, {
|
|
78
|
+
sx: {
|
|
79
|
+
padding: '8px'
|
|
80
|
+
},
|
|
81
|
+
children: /*#__PURE__*/ _jsxs(Box, {
|
|
82
|
+
sx: {
|
|
83
|
+
display: 'grid',
|
|
84
|
+
gridTemplateColumns: !showTime ? '1fr' : '8px minmax(160px, max-content) 1fr',
|
|
85
|
+
gap: '12px'
|
|
86
|
+
},
|
|
87
|
+
children: [
|
|
88
|
+
showTime && /*#__PURE__*/ _jsxs(_Fragment, {
|
|
89
|
+
children: [
|
|
90
|
+
/*#__PURE__*/ _jsx(Box, {}),
|
|
91
|
+
/*#__PURE__*/ _jsx(Box, {})
|
|
92
|
+
]
|
|
93
|
+
}),
|
|
94
|
+
/*#__PURE__*/ _jsx(Box, {
|
|
95
|
+
children: /*#__PURE__*/ _jsx(LogDetailsTable, {
|
|
96
|
+
log: log.labels
|
|
97
|
+
})
|
|
98
|
+
})
|
|
99
|
+
]
|
|
100
|
+
})
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
]
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
export const LogRow = /*#__PURE__*/ memo(DefaultLogRow);
|
|
107
|
+
LogRow.displayName = 'LogRow';
|
|
108
|
+
|
|
109
|
+
//# sourceMappingURL=LogRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/LogRow/LogRow.tsx"],"sourcesContent":["// Copyright 2025 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// You may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React, { memo, useCallback } from 'react';\nimport { Box, Collapse, useTheme } from '@mui/material';\nimport ChevronRight from 'mdi-material-ui/ChevronRight';\nimport { LogEntry } from '@perses-dev/core';\nimport { LogTimestamp } from './LogTimestamp';\nimport { LogRowContainer, LogRowContent, ExpandButton, LogText } from './LogsStyles';\nimport { LogDetailsTable } from './LogDetailsTable';\n\ninterface LogRowProps {\n log?: LogEntry;\n index: number;\n isExpanded: boolean;\n onToggle: (index: number) => void;\n isExpandable?: boolean;\n showTime?: boolean;\n allowWrap?: boolean;\n}\n\nconst DefaultLogRow: React.FC<LogRowProps> = ({\n log,\n isExpanded,\n index,\n onToggle,\n isExpandable = true,\n showTime = false,\n allowWrap = false,\n}) => {\n const theme = useTheme();\n const severityColor = theme.palette.text.secondary;\n\n const handleToggle = useCallback(() => {\n if (isExpandable) {\n onToggle(index);\n }\n }, [isExpandable, onToggle, index]);\n\n if (!log) return null;\n\n return (\n <LogRowContainer severityColor={severityColor}>\n <LogRowContent onClick={handleToggle} isExpandable={isExpandable}>\n {isExpandable && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n width: '16px',\n justifyContent: 'center',\n }}\n >\n <ExpandButton size=\"small\" isExpanded={isExpanded}>\n <ChevronRight sx={{ fontSize: '12px' }} />\n </ExpandButton>\n </Box>\n )}\n\n <LogTimestamp timestamp={log.timestamp} />\n\n <Box\n sx={{\n display: 'flex',\n gap: '10px',\n marginLeft: '36px',\n }}\n >\n <LogText variant=\"body2\" allowWrap={allowWrap}>\n {log.line}\n </LogText>\n </Box>\n </LogRowContent>\n\n <Collapse in={isExpanded} timeout={200}>\n <Box sx={{ padding: '8px' }}>\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: !showTime ? '1fr' : '8px minmax(160px, max-content) 1fr',\n gap: '12px',\n }}\n >\n {showTime && (\n <>\n <Box />\n <Box />\n </>\n )}\n <Box>\n <LogDetailsTable log={log.labels} />\n </Box>\n </Box>\n </Box>\n </Collapse>\n </LogRowContainer>\n );\n};\n\nexport const LogRow = memo(DefaultLogRow);\nLogRow.displayName = 'LogRow';\n"],"names":["React","memo","useCallback","Box","Collapse","useTheme","ChevronRight","LogTimestamp","LogRowContainer","LogRowContent","ExpandButton","LogText","LogDetailsTable","DefaultLogRow","log","isExpanded","index","onToggle","isExpandable","showTime","allowWrap","theme","severityColor","palette","text","secondary","handleToggle","onClick","sx","display","alignItems","width","justifyContent","size","fontSize","timestamp","gap","marginLeft","variant","line","in","timeout","padding","gridTemplateColumns","labels","LogRow","displayName"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAEjC,OAAOA,SAASC,IAAI,EAAEC,WAAW,QAAQ,QAAQ;AACjD,SAASC,GAAG,EAAEC,QAAQ,EAAEC,QAAQ,QAAQ,gBAAgB;AACxD,OAAOC,kBAAkB,+BAA+B;AAExD,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,eAAe,EAAEC,aAAa,EAAEC,YAAY,EAAEC,OAAO,QAAQ,eAAe;AACrF,SAASC,eAAe,QAAQ,oBAAoB;AAYpD,MAAMC,gBAAuC,CAAC,EAC5CC,GAAG,EACHC,UAAU,EACVC,KAAK,EACLC,QAAQ,EACRC,eAAe,IAAI,EACnBC,WAAW,KAAK,EAChBC,YAAY,KAAK,EAClB;IACC,MAAMC,QAAQhB;IACd,MAAMiB,gBAAgBD,MAAME,OAAO,CAACC,IAAI,CAACC,SAAS;IAElD,MAAMC,eAAexB,YAAY;QAC/B,IAAIgB,cAAc;YAChBD,SAASD;QACX;IACF,GAAG;QAACE;QAAcD;QAAUD;KAAM;IAElC,IAAI,CAACF,KAAK,OAAO;IAEjB,qBACE,MAACN;QAAgBc,eAAeA;;0BAC9B,MAACb;gBAAckB,SAASD;gBAAcR,cAAcA;;oBACjDA,8BACC,KAACf;wBACCyB,IAAI;4BACFC,SAAS;4BACTC,YAAY;4BACZC,OAAO;4BACPC,gBAAgB;wBAClB;kCAEA,cAAA,KAACtB;4BAAauB,MAAK;4BAAQlB,YAAYA;sCACrC,cAAA,KAACT;gCAAasB,IAAI;oCAAEM,UAAU;gCAAO;;;;kCAK3C,KAAC3B;wBAAa4B,WAAWrB,IAAIqB,SAAS;;kCAEtC,KAAChC;wBACCyB,IAAI;4BACFC,SAAS;4BACTO,KAAK;4BACLC,YAAY;wBACd;kCAEA,cAAA,KAAC1B;4BAAQ2B,SAAQ;4BAAQlB,WAAWA;sCACjCN,IAAIyB,IAAI;;;;;0BAKf,KAACnC;gBAASoC,IAAIzB;gBAAY0B,SAAS;0BACjC,cAAA,KAACtC;oBAAIyB,IAAI;wBAAEc,SAAS;oBAAM;8BACxB,cAAA,MAACvC;wBACCyB,IAAI;4BACFC,SAAS;4BACTc,qBAAqB,CAACxB,WAAW,QAAQ;4BACzCiB,KAAK;wBACP;;4BAECjB,0BACC;;kDACE,KAAChB;kDACD,KAACA;;;0CAGL,KAACA;0CACC,cAAA,KAACS;oCAAgBE,KAAKA,IAAI8B,MAAM;;;;;;;;;AAO9C;AAEA,OAAO,MAAMC,uBAAS5C,KAAKY,eAAe;AAC1CgC,OAAOC,WAAW,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogTimestamp.d.ts","sourceRoot":"","sources":["../../../../src/components/LogRow/LogTimestamp.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAMD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAcpD,CAAC"}
|