@har-analyzer/components 0.0.8 → 0.0.10
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/README.md +25 -0
- package/dist/har-analyzer-preferences.d.ts +18 -0
- package/dist/har-analyzer-preferences.js +96 -0
- package/dist/har-analyzer.js +57 -57
- package/dist/har-content-viewer.js +23 -22
- package/dist/har-entries-viewer.js +2117 -7
- package/dist/index.d.ts +10 -0
- package/dist/index.js +17 -15
- package/package.json +3 -3
- package/dist/chunks/index2.js +0 -2205
package/README.md
CHANGED
|
@@ -114,6 +114,31 @@ function App() {
|
|
|
114
114
|
|
|
115
115
|
---
|
|
116
116
|
|
|
117
|
+
### HARAnalyzerPreferencesProvider
|
|
118
|
+
|
|
119
|
+
Provides a persistent context for managing user preferences (like theme, content width, table preferences and board layouts). By default, preferences rely on browser storage. However, you can provide a custom async store (e.g., to save preferences to a backend database or external extension API) by wrapping your application in `HARAnalyzerPreferencesProvider`.
|
|
120
|
+
|
|
121
|
+
```jsx
|
|
122
|
+
import HARAnalyzerPreferencesProvider from '@har-analyzer/components/har-analyzer-preferences';
|
|
123
|
+
|
|
124
|
+
// Optional: Custom external store
|
|
125
|
+
const customStore = {
|
|
126
|
+
getPreference: async (key) => fetch(`/api/prefs/${key}`).then(res => res.text()),
|
|
127
|
+
setPreference: async (key, value) => { await fetch(`/api/prefs/${key}`, { method: 'POST', body: value }) }
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
function App() {
|
|
131
|
+
return (
|
|
132
|
+
<HARAnalyzerPreferencesProvider store={customStore}>
|
|
133
|
+
<HARAnalyzer appName="HAR Analyzer" />;
|
|
134
|
+
</HARAnalyzerPreferencesProvider>
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
117
142
|
### HAR Utilities
|
|
118
143
|
|
|
119
144
|
Various types and utilities for working with HTTP Archive (.har) files are directly exported.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Dispatch } from 'react';
|
|
2
|
+
import { JSX } from 'react/jsx-runtime';
|
|
3
|
+
import { PropsWithChildren } from 'react';
|
|
4
|
+
import { SetStateAction } from 'react';
|
|
5
|
+
|
|
6
|
+
declare function HARAnalyzerPreferencesProvider({ store, children }: PropsWithChildren<{
|
|
7
|
+
store: PreferencesStore;
|
|
8
|
+
}>): JSX.Element;
|
|
9
|
+
export default HARAnalyzerPreferencesProvider;
|
|
10
|
+
|
|
11
|
+
declare interface PreferencesStore {
|
|
12
|
+
getPreference: (key: string) => Promise<string | undefined>;
|
|
13
|
+
setPreference: (key: string, value: string) => Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export declare function useHARAnalyzerPreferences<T>(preferenceKey: string, defaultValue: T): readonly [T, Dispatch<SetStateAction<T>>];
|
|
17
|
+
|
|
18
|
+
export { }
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { jsx as D } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as E, use as F, useMemo as x, useState as A, useCallback as m, useEffect as b } from "react";
|
|
3
|
+
async function c(t, e) {
|
|
4
|
+
return new Promise((r, n) => {
|
|
5
|
+
t.addEventListener("success", () => {
|
|
6
|
+
r(t.result);
|
|
7
|
+
}), t.addEventListener("error", () => {
|
|
8
|
+
n(e);
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
var S = function(t, e, r, n, a) {
|
|
13
|
+
if (n === "m") throw new TypeError("Private method is not writable");
|
|
14
|
+
if (n === "a" && !a) throw new TypeError("Private accessor was defined without a setter");
|
|
15
|
+
if (typeof e == "function" ? t !== e || !a : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
16
|
+
return n === "a" ? a.call(t, r) : a ? a.value = r : e.set(t, r), r;
|
|
17
|
+
}, o = function(t, e, r, n) {
|
|
18
|
+
if (r === "a" && !n) throw new TypeError("Private accessor was defined without a getter");
|
|
19
|
+
if (typeof e == "function" ? t !== e || !n : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
20
|
+
return r === "m" ? n : r === "a" ? n.call(t) : n ? n.value : e.get(t);
|
|
21
|
+
}, s, l, i, d, g, _;
|
|
22
|
+
class C {
|
|
23
|
+
constructor({ name: e }) {
|
|
24
|
+
s.add(this), l.set(this, void 0), i.set(this, void 0), S(this, l, e, "f");
|
|
25
|
+
}
|
|
26
|
+
async getItem(e) {
|
|
27
|
+
const r = await o(this, s, "m", d).call(this);
|
|
28
|
+
return c(r.get(e), "Failed to get item");
|
|
29
|
+
}
|
|
30
|
+
async setItem(e, r) {
|
|
31
|
+
const n = await o(this, s, "m", d).call(this);
|
|
32
|
+
return c(n.put(r, e), "Failed to set item");
|
|
33
|
+
}
|
|
34
|
+
async removeItem(e) {
|
|
35
|
+
const r = await o(this, s, "m", d).call(this);
|
|
36
|
+
return c(r.delete(e), "Failed to remove item");
|
|
37
|
+
}
|
|
38
|
+
async clear() {
|
|
39
|
+
const e = await o(this, s, "m", d).call(this);
|
|
40
|
+
return c(e.clear(), "Failed to clear store");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
l = /* @__PURE__ */ new WeakMap(), i = /* @__PURE__ */ new WeakMap(), s = /* @__PURE__ */ new WeakSet(), d = async function() {
|
|
44
|
+
return (await o(this, s, "m", g).call(this)).transaction("store", "readwrite").objectStore("store");
|
|
45
|
+
}, g = async function() {
|
|
46
|
+
return o(this, i, "f") === void 0 && S(this, i, o(this, s, "m", _).call(this), "f"), o(this, i, "f");
|
|
47
|
+
}, _ = async function() {
|
|
48
|
+
const e = indexedDB.open(o(this, l, "f"), 1);
|
|
49
|
+
return e.addEventListener("upgradeneeded", () => {
|
|
50
|
+
e.result.createObjectStore("store");
|
|
51
|
+
}), c(e, "Failed to open IndexedDB");
|
|
52
|
+
};
|
|
53
|
+
const p = new C({ name: "node_modules/local-db-storage" }), y = {
|
|
54
|
+
get: async (t) => await p.getItem(t),
|
|
55
|
+
set: async (t, e) => {
|
|
56
|
+
await p.setItem(t, e);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
function I(t, e) {
|
|
60
|
+
try {
|
|
61
|
+
return JSON.parse(t ?? "");
|
|
62
|
+
} catch (r) {
|
|
63
|
+
return console.warn("Failed to parse JSON string:", t, "Error:", r), e;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const P = E(void 0);
|
|
67
|
+
function L({ store: t, children: e }) {
|
|
68
|
+
return /* @__PURE__ */ D(P, { value: t, children: e });
|
|
69
|
+
}
|
|
70
|
+
const O = {
|
|
71
|
+
getPreference: y.get,
|
|
72
|
+
setPreference: y.set
|
|
73
|
+
};
|
|
74
|
+
function R(t, e) {
|
|
75
|
+
const r = F(P), n = x(() => r || (console.warn("Invoked outside of HARAnalyzerPreferencesProvider. Falling back to use fallback preferences store."), O), [r]), [a, f] = A(e), w = m(async () => {
|
|
76
|
+
const u = await n.getPreference(t), v = I(u, e);
|
|
77
|
+
f(v);
|
|
78
|
+
}, [n, t, e]);
|
|
79
|
+
b(() => {
|
|
80
|
+
w();
|
|
81
|
+
}, [w]);
|
|
82
|
+
const h = m(async () => {
|
|
83
|
+
try {
|
|
84
|
+
await n.setPreference(t, JSON.stringify(a));
|
|
85
|
+
} catch (u) {
|
|
86
|
+
console.error(`Failed to update preference for key ${t}:`, u);
|
|
87
|
+
}
|
|
88
|
+
}, [n, t, a]);
|
|
89
|
+
return b(() => {
|
|
90
|
+
h();
|
|
91
|
+
}, [h]), [a, f];
|
|
92
|
+
}
|
|
93
|
+
export {
|
|
94
|
+
L as default,
|
|
95
|
+
R as useHARAnalyzerPreferences
|
|
96
|
+
};
|
package/dist/har-analyzer.js
CHANGED
|
@@ -1,88 +1,88 @@
|
|
|
1
1
|
import { jsx as e, jsxs as i, Fragment as F } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect as N, useState as a } from "react";
|
|
3
|
-
import
|
|
4
|
-
import { I18nProvider as
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import { borderWidthAlert as
|
|
3
|
+
import R from "@cloudscape-design/components/app-layout";
|
|
4
|
+
import { I18nProvider as v } from "@cloudscape-design/components/i18n";
|
|
5
|
+
import y from "@cloudscape-design/components/i18n/messages/all.en";
|
|
6
|
+
import { useHARAnalyzerPreferences as p } from "./har-analyzer-preferences.js";
|
|
7
|
+
import D from "@cloudscape-design/components/header";
|
|
8
|
+
import { borderWidthAlert as T, colorBorderDividerDefault as b } from "@cloudscape-design/design-tokens";
|
|
9
9
|
import { H as E } from "./chunks/index.js";
|
|
10
|
-
import
|
|
11
|
-
import
|
|
10
|
+
import c from "@cloudscape-design/components/box";
|
|
11
|
+
import l from "@cloudscape-design/components/button";
|
|
12
12
|
import M from "@cloudscape-design/components/modal";
|
|
13
|
-
import { V as
|
|
14
|
-
import
|
|
15
|
-
import { Mode as m, applyMode as
|
|
16
|
-
import
|
|
17
|
-
import
|
|
13
|
+
import { V as f } from "./chunks/vertical-gap.js";
|
|
14
|
+
import u from "@cloudscape-design/components/toggle";
|
|
15
|
+
import { Mode as m, applyMode as W } from "@cloudscape-design/global-styles";
|
|
16
|
+
import I from "./har-file-uploader.js";
|
|
17
|
+
import S from "./har-content-viewer.js";
|
|
18
18
|
function A() {
|
|
19
19
|
return p("isFullContentWidth", !1);
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
function U() {
|
|
22
|
+
return p("isDarkTheme", !1);
|
|
23
|
+
}
|
|
24
|
+
const k = "top-navigation", d = "blur(16px)";
|
|
25
|
+
function _({
|
|
23
26
|
logo: t,
|
|
24
|
-
appName:
|
|
25
|
-
utilities:
|
|
27
|
+
appName: o,
|
|
28
|
+
utilities: r
|
|
26
29
|
}) {
|
|
27
30
|
return /* @__PURE__ */ e(
|
|
28
31
|
"nav",
|
|
29
32
|
{
|
|
30
|
-
id:
|
|
33
|
+
id: k,
|
|
31
34
|
style: {
|
|
32
35
|
position: "sticky",
|
|
33
36
|
top: 0,
|
|
34
37
|
zIndex: 1002,
|
|
35
38
|
padding: "0.5rem 1rem",
|
|
36
|
-
borderBlockEnd: `${
|
|
39
|
+
borderBlockEnd: `${T} solid ${b}`,
|
|
37
40
|
backdropFilter: d,
|
|
38
41
|
WebkitBackdropFilter: d
|
|
39
42
|
// for Safari
|
|
40
43
|
},
|
|
41
|
-
children: /* @__PURE__ */ e(
|
|
44
|
+
children: /* @__PURE__ */ e(D, { actions: r, children: /* @__PURE__ */ i(E, { children: [
|
|
42
45
|
t,
|
|
43
|
-
|
|
46
|
+
o
|
|
44
47
|
] }) })
|
|
45
48
|
}
|
|
46
49
|
);
|
|
47
50
|
}
|
|
48
|
-
function
|
|
49
|
-
const [t,
|
|
50
|
-
return /* @__PURE__ */ e(
|
|
51
|
-
r
|
|
51
|
+
function x() {
|
|
52
|
+
const [t, o] = A();
|
|
53
|
+
return /* @__PURE__ */ e(u, { onChange: ({ detail: r }) => {
|
|
54
|
+
o(r.checked);
|
|
52
55
|
}, checked: t, children: "Use entire screen width" });
|
|
53
56
|
}
|
|
54
|
-
function
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
function x() {
|
|
58
|
-
const [t, r] = _();
|
|
57
|
+
function L() {
|
|
58
|
+
const [t, o] = U();
|
|
59
59
|
return N(() => {
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
}, [t]), /* @__PURE__ */ e(
|
|
63
|
-
r
|
|
60
|
+
const r = t ? m.Dark : m.Light;
|
|
61
|
+
W(r);
|
|
62
|
+
}, [t]), /* @__PURE__ */ e(u, { onChange: ({ detail: r }) => {
|
|
63
|
+
o(r.checked);
|
|
64
64
|
}, checked: t, children: "Use dark theme" });
|
|
65
65
|
}
|
|
66
66
|
function V() {
|
|
67
|
-
const [t,
|
|
68
|
-
|
|
67
|
+
const [t, o] = a(!1), r = () => {
|
|
68
|
+
o(!0);
|
|
69
69
|
}, n = () => {
|
|
70
|
-
|
|
70
|
+
o(!1);
|
|
71
71
|
};
|
|
72
72
|
return /* @__PURE__ */ i(F, { children: [
|
|
73
|
-
/* @__PURE__ */ e(
|
|
73
|
+
/* @__PURE__ */ e(l, { iconName: "settings", variant: "icon", onClick: r }),
|
|
74
74
|
/* @__PURE__ */ i(
|
|
75
75
|
M,
|
|
76
76
|
{
|
|
77
77
|
visible: t,
|
|
78
78
|
onDismiss: n,
|
|
79
79
|
header: "Manage your preferences",
|
|
80
|
-
footer: /* @__PURE__ */ e(
|
|
80
|
+
footer: /* @__PURE__ */ e(c, { float: "right", children: /* @__PURE__ */ e(l, { variant: "primary", onClick: n, children: "Ok" }) }),
|
|
81
81
|
children: [
|
|
82
|
-
/* @__PURE__ */ e(
|
|
83
|
-
/* @__PURE__ */ i(
|
|
84
|
-
/* @__PURE__ */ e(
|
|
85
|
-
/* @__PURE__ */ e(
|
|
82
|
+
/* @__PURE__ */ e(c, { margin: { top: "m" } }),
|
|
83
|
+
/* @__PURE__ */ i(f, { size: "m", children: [
|
|
84
|
+
/* @__PURE__ */ e(L, {}),
|
|
85
|
+
/* @__PURE__ */ e(x, {})
|
|
86
86
|
] })
|
|
87
87
|
]
|
|
88
88
|
}
|
|
@@ -91,37 +91,37 @@ function V() {
|
|
|
91
91
|
}
|
|
92
92
|
function w({
|
|
93
93
|
logo: t,
|
|
94
|
-
appName:
|
|
95
|
-
content:
|
|
94
|
+
appName: o,
|
|
95
|
+
content: r
|
|
96
96
|
}) {
|
|
97
97
|
const [n] = A();
|
|
98
|
-
return /* @__PURE__ */ i(
|
|
99
|
-
/* @__PURE__ */ e(
|
|
98
|
+
return /* @__PURE__ */ i(v, { locale: "en", messages: [y], children: [
|
|
99
|
+
/* @__PURE__ */ e(_, { logo: t, appName: o, utilities: /* @__PURE__ */ e(V, {}) }),
|
|
100
100
|
/* @__PURE__ */ e(
|
|
101
|
-
|
|
101
|
+
R,
|
|
102
102
|
{
|
|
103
|
-
headerSelector: `#${
|
|
103
|
+
headerSelector: `#${k}`,
|
|
104
104
|
navigationHide: !0,
|
|
105
105
|
toolsHide: !0,
|
|
106
106
|
maxContentWidth: n ? Number.MAX_VALUE : void 0,
|
|
107
|
-
content:
|
|
107
|
+
content: r
|
|
108
108
|
}
|
|
109
109
|
)
|
|
110
110
|
] });
|
|
111
111
|
}
|
|
112
112
|
const h = "unknown.har";
|
|
113
|
-
function ne({ logo: t, appName:
|
|
114
|
-
const [
|
|
113
|
+
function ne({ logo: t, appName: o = "HAR Analyzer" }) {
|
|
114
|
+
const [r, n] = a(h), [s, C] = a();
|
|
115
115
|
return /* @__PURE__ */ e(
|
|
116
116
|
w,
|
|
117
117
|
{
|
|
118
118
|
logo: t,
|
|
119
|
-
appName:
|
|
120
|
-
content: /* @__PURE__ */ i(
|
|
121
|
-
/* @__PURE__ */ e(
|
|
122
|
-
|
|
119
|
+
appName: o,
|
|
120
|
+
content: /* @__PURE__ */ i(f, { children: [
|
|
121
|
+
/* @__PURE__ */ e(I, { onChange: ({ harContent: g, harFileName: H }) => {
|
|
122
|
+
C(g), n(H ?? h);
|
|
123
123
|
} }),
|
|
124
|
-
s && /* @__PURE__ */ e(
|
|
124
|
+
s && /* @__PURE__ */ e(S, { harFileName: r, harContent: s })
|
|
125
125
|
] })
|
|
126
126
|
}
|
|
127
127
|
);
|
|
@@ -5,9 +5,10 @@ import $ from "@cloudscape-design/board-components/board-item";
|
|
|
5
5
|
import b from "@cloudscape-design/components/button";
|
|
6
6
|
import H from "@cloudscape-design/components/header";
|
|
7
7
|
import { u as C } from "./chunks/index.js";
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
8
|
+
import z from "./har-entries-viewer.js";
|
|
9
|
+
import B from "./har-entry-viewer.js";
|
|
10
|
+
import { useHARAnalyzerPreferences as _ } from "./har-analyzer-preferences.js";
|
|
11
|
+
import { a as L } from "./chunks/har.js";
|
|
11
12
|
const F = {
|
|
12
13
|
dragHandleAriaLabel: "Drag handle",
|
|
13
14
|
dragHandleAriaDescription: "Use Space or Enter to activate drag, arrow keys to move, Space or Enter to submit, or Escape to discard. Be sure to temporarily disable any screen reader navigation feature that may interfere with the functionality of the arrow keys.",
|
|
@@ -15,8 +16,8 @@ const F = {
|
|
|
15
16
|
resizeHandleAriaDescription: "Use Space or Enter to activate resize, arrow keys to move, Space or Enter to submit, or Escape to discard. Be sure to temporarily disable any screen reader navigation feature that may interfere with the functionality of the arrow keys."
|
|
16
17
|
};
|
|
17
18
|
function d(e, n, t) {
|
|
18
|
-
const
|
|
19
|
-
return [e,
|
|
19
|
+
const r = n.length > 0 ? `Conflicts with ${n.map((i) => i.id).join(", ")}.` : "", s = t.length > 0 ? `Disturbed ${t.length} items.` : "";
|
|
20
|
+
return [e, r, s].filter(Boolean).join(" ");
|
|
20
21
|
}
|
|
21
22
|
const N = {
|
|
22
23
|
liveAnnouncementDndStarted: (e) => e === "resize" ? "Resizing" : "Dragging",
|
|
@@ -29,8 +30,8 @@ const N = {
|
|
|
29
30
|
);
|
|
30
31
|
},
|
|
31
32
|
liveAnnouncementDndItemResized: (e) => {
|
|
32
|
-
const n = e.isMinimalColumnsReached ? " (minimal)" : "", t = e.isMinimalRowsReached ? " (minimal)" : "",
|
|
33
|
-
return d(`Item resized to ${
|
|
33
|
+
const n = e.isMinimalColumnsReached ? " (minimal)" : "", t = e.isMinimalRowsReached ? " (minimal)" : "", r = e.direction === "horizontal" ? `columns ${e.placement.width}${n}` : `rows ${e.placement.height}${t}`;
|
|
34
|
+
return d(`Item resized to ${r}.`, e.conflicts, e.disturbed);
|
|
34
35
|
},
|
|
35
36
|
liveAnnouncementDndItemInserted: (e) => {
|
|
36
37
|
const n = `column ${e.placement.x + 1}`, t = `row ${e.placement.y + 1}`;
|
|
@@ -47,7 +48,7 @@ function T(e) {
|
|
|
47
48
|
const {
|
|
48
49
|
components: n,
|
|
49
50
|
definitions: t,
|
|
50
|
-
onDefinitionsChange:
|
|
51
|
+
onDefinitionsChange: r,
|
|
51
52
|
empty: s
|
|
52
53
|
} = e;
|
|
53
54
|
return /* @__PURE__ */ o(
|
|
@@ -55,14 +56,14 @@ function T(e) {
|
|
|
55
56
|
{
|
|
56
57
|
i18nStrings: N,
|
|
57
58
|
items: t,
|
|
58
|
-
renderItem: ({ id:
|
|
59
|
+
renderItem: ({ id: i }, { removeItem: c }) => {
|
|
59
60
|
const {
|
|
60
61
|
title: m,
|
|
61
62
|
content: l,
|
|
62
63
|
actions: u,
|
|
63
64
|
counter: f,
|
|
64
65
|
canRemove: h
|
|
65
|
-
} = n[
|
|
66
|
+
} = n[i] ?? {};
|
|
66
67
|
return /* @__PURE__ */ o(
|
|
67
68
|
$,
|
|
68
69
|
{
|
|
@@ -73,15 +74,15 @@ function T(e) {
|
|
|
73
74
|
}
|
|
74
75
|
);
|
|
75
76
|
},
|
|
76
|
-
onItemsChange: ({ detail: { items:
|
|
77
|
-
i
|
|
77
|
+
onItemsChange: ({ detail: { items: i } }) => {
|
|
78
|
+
r(i);
|
|
78
79
|
},
|
|
79
80
|
empty: s
|
|
80
81
|
}
|
|
81
82
|
);
|
|
82
83
|
}
|
|
83
84
|
function k(e, n) {
|
|
84
|
-
return
|
|
85
|
+
return _(`boardDefinitionsPreference_${e}`, n);
|
|
85
86
|
}
|
|
86
87
|
const v = 6, D = "har-entries-viewer", E = "selected-har-entry-viewer", R = [
|
|
87
88
|
{
|
|
@@ -97,25 +98,25 @@ const v = 6, D = "har-entries-viewer", E = "selected-har-entry-viewer", R = [
|
|
|
97
98
|
columnSpan: 12
|
|
98
99
|
}
|
|
99
100
|
];
|
|
100
|
-
function
|
|
101
|
-
const { harFileName: n, harContent: t } = e,
|
|
101
|
+
function Q(e) {
|
|
102
|
+
const { harFileName: n, harContent: t } = e, r = I(() => L(t), [t]), [s, i] = g(), [c, m] = g(R);
|
|
102
103
|
S(() => {
|
|
103
|
-
|
|
104
|
-
}, [
|
|
104
|
+
i(void 0);
|
|
105
|
+
}, [r]);
|
|
105
106
|
const [l, u] = k(
|
|
106
107
|
"har-contents-viewer",
|
|
107
108
|
O
|
|
108
109
|
), f = (a) => {
|
|
109
110
|
m(a), a.length > 1 && u(a);
|
|
110
111
|
}, h = (a) => {
|
|
111
|
-
|
|
112
|
+
i(a), c.length === 1 && m(l);
|
|
112
113
|
}, {
|
|
113
114
|
HAREntriesFilters: p,
|
|
114
115
|
filteredHAREntries: A
|
|
115
|
-
} = C(
|
|
116
|
+
} = C(r), y = {
|
|
116
117
|
[D]: {
|
|
117
118
|
title: n,
|
|
118
|
-
counter: `(${A.length} / ${
|
|
119
|
+
counter: `(${A.length} / ${r.length})`,
|
|
119
120
|
actions: /* @__PURE__ */ o(p, {}),
|
|
120
121
|
content: /* @__PURE__ */ o(
|
|
121
122
|
z,
|
|
@@ -127,7 +128,7 @@ function K(e) {
|
|
|
127
128
|
},
|
|
128
129
|
[E]: s ? {
|
|
129
130
|
title: "Details",
|
|
130
|
-
content: /* @__PURE__ */ o(
|
|
131
|
+
content: /* @__PURE__ */ o(B, { harEntry: s }),
|
|
131
132
|
canRemove: !0
|
|
132
133
|
} : {
|
|
133
134
|
title: "Select an entry to see details",
|
|
@@ -145,5 +146,5 @@ function K(e) {
|
|
|
145
146
|
);
|
|
146
147
|
}
|
|
147
148
|
export {
|
|
148
|
-
|
|
149
|
+
Q as default
|
|
149
150
|
};
|