@module-federation/devtools 0.22.0 → 0.23.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 (116) hide show
  1. package/dist/es/App.css +13 -0
  2. package/dist/es/App.js +461 -21
  3. package/dist/es/App.module.js +1 -1
  4. package/dist/es/App_module.css +293 -5
  5. package/dist/es/component/DependencyGraph/index.js +204 -0
  6. package/dist/es/component/DependencyGraph/index.module.js +5 -0
  7. package/dist/es/component/DependencyGraph/index_module.css +100 -0
  8. package/dist/es/component/{GraphItem → DependencyGraphItem}/index.js +20 -9
  9. package/dist/es/component/DependencyGraphItem/index.module.js +5 -0
  10. package/dist/es/component/DependencyGraphItem/index_module.css +95 -0
  11. package/dist/es/component/Form/index.js +192 -117
  12. package/dist/es/component/Form/index.module.js +1 -1
  13. package/dist/es/component/Form/index_module.css +176 -25
  14. package/dist/es/component/LanguageSwitch.js +50 -0
  15. package/dist/es/component/Layout/index.js +296 -49
  16. package/dist/es/component/Layout/index.module.js +1 -1
  17. package/dist/es/component/Layout/index_module.css +52 -32
  18. package/dist/es/component/ModuleInfo/index.js +313 -0
  19. package/dist/es/component/ModuleInfo/index.module.js +5 -0
  20. package/dist/es/component/ModuleInfo/index_module.css +184 -0
  21. package/dist/es/component/SharedDepsExplorer/FocusResultDisplay.js +35 -0
  22. package/dist/es/component/SharedDepsExplorer/FocusResultDisplay.module.js +5 -0
  23. package/dist/es/component/SharedDepsExplorer/FocusResultDisplay_module.css +45 -0
  24. package/dist/es/component/SharedDepsExplorer/index.js +495 -0
  25. package/dist/es/component/SharedDepsExplorer/index.module.js +5 -0
  26. package/dist/es/component/SharedDepsExplorer/index_module.css +467 -0
  27. package/dist/es/component/SharedDepsExplorer/share-utils.js +206 -0
  28. package/dist/es/component/ThemeToggle.js +19 -0
  29. package/dist/es/component/ThemeToggle.module.js +5 -0
  30. package/dist/es/component/ThemeToggle_module.css +12 -0
  31. package/dist/es/hooks/useDevtoolsTheme.js +77 -0
  32. package/dist/es/i18n/index.js +506 -0
  33. package/dist/es/template/constant.js +3 -19
  34. package/dist/es/utils/chrome/index.js +91 -38
  35. package/dist/es/utils/chrome/messages.js +6 -0
  36. package/dist/es/utils/chrome/override-remote.js +42 -0
  37. package/dist/es/utils/chrome/post-message-listener.js +2 -1
  38. package/dist/es/utils/chrome/post-message-start.js +10 -2
  39. package/dist/es/utils/chrome/storage.js +6 -1
  40. package/dist/es/utils/sdk/graph.js +25 -4
  41. package/dist/es/utils/sdk/index.js +9 -0
  42. package/dist/es/worker/index.js +168 -1
  43. package/dist/lib/App.css +13 -0
  44. package/dist/lib/App.js +451 -18
  45. package/dist/lib/App.module.js +1 -1
  46. package/dist/lib/App_module.css +293 -5
  47. package/dist/lib/component/DependencyGraph/index.js +226 -0
  48. package/dist/lib/component/{GraphItem → DependencyGraph}/index.module.js +1 -1
  49. package/dist/lib/component/DependencyGraph/index_module.css +100 -0
  50. package/dist/lib/component/{GraphItem → DependencyGraphItem}/index.js +23 -12
  51. package/dist/lib/component/{Graph → DependencyGraphItem}/index.module.js +1 -1
  52. package/dist/lib/component/DependencyGraphItem/index_module.css +95 -0
  53. package/dist/lib/component/Form/index.js +189 -115
  54. package/dist/lib/component/Form/index.module.js +1 -1
  55. package/dist/lib/component/Form/index_module.css +176 -25
  56. package/dist/lib/component/LanguageSwitch.js +80 -0
  57. package/dist/lib/component/Layout/index.js +290 -47
  58. package/dist/lib/component/Layout/index.module.js +1 -1
  59. package/dist/lib/component/Layout/index_module.css +52 -32
  60. package/dist/lib/component/ModuleInfo/index.js +343 -0
  61. package/dist/lib/component/ModuleInfo/index.module.js +25 -0
  62. package/dist/lib/component/ModuleInfo/index_module.css +184 -0
  63. package/dist/lib/component/SharedDepsExplorer/FocusResultDisplay.js +65 -0
  64. package/dist/lib/component/SharedDepsExplorer/FocusResultDisplay.module.js +25 -0
  65. package/dist/lib/component/SharedDepsExplorer/FocusResultDisplay_module.css +45 -0
  66. package/dist/lib/component/SharedDepsExplorer/index.js +502 -0
  67. package/dist/lib/component/SharedDepsExplorer/index.module.js +25 -0
  68. package/dist/lib/component/SharedDepsExplorer/index_module.css +467 -0
  69. package/dist/lib/component/SharedDepsExplorer/share-utils.js +237 -0
  70. package/dist/lib/component/ThemeToggle.js +49 -0
  71. package/dist/lib/component/ThemeToggle.module.js +25 -0
  72. package/dist/lib/component/ThemeToggle_module.css +12 -0
  73. package/dist/lib/hooks/useDevtoolsTheme.js +101 -0
  74. package/dist/lib/i18n/index.js +540 -0
  75. package/dist/lib/template/constant.js +4 -17
  76. package/dist/lib/utils/chrome/index.js +94 -38
  77. package/dist/lib/utils/chrome/messages.js +31 -0
  78. package/dist/lib/utils/chrome/override-remote.js +65 -0
  79. package/dist/lib/utils/chrome/post-message-listener.js +2 -1
  80. package/dist/lib/utils/chrome/post-message-start.js +10 -2
  81. package/dist/lib/utils/chrome/storage.js +5 -0
  82. package/dist/lib/utils/sdk/graph.js +25 -4
  83. package/dist/lib/utils/sdk/index.js +10 -0
  84. package/dist/lib/worker/index.js +156 -1
  85. package/dist/types/src/App.d.ts +2 -1
  86. package/dist/types/src/component/{Graph → DependencyGraph}/index.d.ts +0 -1
  87. package/dist/types/src/component/{GraphItem → DependencyGraphItem}/index.d.ts +0 -1
  88. package/dist/types/src/component/Form/index.d.ts +2 -0
  89. package/dist/types/src/component/LanguageSwitch.d.ts +2 -0
  90. package/dist/types/src/component/Layout/index.d.ts +0 -1
  91. package/dist/types/src/component/ModuleInfo/index.d.ts +8 -0
  92. package/dist/types/src/component/SharedDepsExplorer/FocusResultDisplay.d.ts +15 -0
  93. package/dist/types/src/component/SharedDepsExplorer/index.d.ts +6 -0
  94. package/dist/types/src/component/SharedDepsExplorer/share-utils.d.ts +44 -0
  95. package/dist/types/src/component/ThemeToggle.d.ts +8 -0
  96. package/dist/types/src/hooks/useDevtoolsTheme.d.ts +2 -0
  97. package/dist/types/src/i18n/index.d.ts +5 -0
  98. package/dist/types/src/init.d.ts +0 -1
  99. package/dist/types/src/template/constant.d.ts +2 -5
  100. package/dist/types/src/utils/chrome/index.d.ts +5 -3
  101. package/dist/types/src/utils/chrome/messages.d.ts +2 -0
  102. package/dist/types/src/utils/chrome/override-remote.d.ts +1 -0
  103. package/dist/types/src/utils/chrome/storage.d.ts +5 -4
  104. package/dist/types/src/utils/sdk/graph.d.ts +2 -1
  105. package/dist/types/src/utils/sdk/index.d.ts +1 -0
  106. package/dist/types/src/utils/types/common.d.ts +4 -0
  107. package/dist/types/src/worker/index.d.ts +1 -0
  108. package/package.json +18 -14
  109. package/dist/es/component/Graph/index.js +0 -127
  110. package/dist/es/component/Graph/index.module.js +0 -5
  111. package/dist/es/component/Graph/index_module.css +0 -12
  112. package/dist/es/component/GraphItem/index.module.js +0 -5
  113. package/dist/es/component/GraphItem/index_module.css +0 -61
  114. package/dist/lib/component/Graph/index.js +0 -149
  115. package/dist/lib/component/Graph/index_module.css +0 -12
  116. package/dist/lib/component/GraphItem/index_module.css +0 -61
@@ -0,0 +1,495 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import { jsx, jsxs } from "react/jsx-runtime";
22
+ import { useEffect, useMemo, useState } from "react";
23
+ import {
24
+ Box,
25
+ Layers,
26
+ Network,
27
+ Package2,
28
+ Repeat,
29
+ Search,
30
+ Server
31
+ } from "lucide-react";
32
+ import {
33
+ Card,
34
+ Tag,
35
+ Table,
36
+ Input,
37
+ Select,
38
+ Collapse,
39
+ Popover,
40
+ Button
41
+ } from "@arco-design/web-react";
42
+ import { useTranslation } from "react-i18next";
43
+ import {
44
+ normalizeShareData,
45
+ computeShareStats,
46
+ getFilterOptions,
47
+ groupByProviderScopePackage,
48
+ findPackageProvider
49
+ } from "./share-utils";
50
+ import FocusResultDisplay from "./FocusResultDisplay";
51
+ import styles from "./index.module";
52
+ const ALL_VALUE = "__all__";
53
+ function SharedDepsExplorer({
54
+ shareData: shareDataProp
55
+ }) {
56
+ const { t } = useTranslation();
57
+ const [normalized, setNormalized] = useState([]);
58
+ const [loadingState, setLoadingState] = useState("idle");
59
+ const [errorMessage, setErrorMessage] = useState(null);
60
+ const loadedStatusLabelLocal = (status) => {
61
+ if (status === "loaded") {
62
+ return t("sharedDeps.status.loaded");
63
+ }
64
+ if (status === "loading") {
65
+ return t("sharedDeps.status.loading");
66
+ }
67
+ return t("sharedDeps.status.notLoaded");
68
+ };
69
+ const [selectedProvider, setSelectedProvider] = useState("");
70
+ const [selectedPackage, setSelectedPackage] = useState("");
71
+ const [selectedVersion, setSelectedVersion] = useState("");
72
+ const [searchText, setSearchText] = useState("");
73
+ const [chartScope, setChartScope] = useState("default");
74
+ const [focusPackage, setFocusPackage] = useState("react");
75
+ const [focusVersion, setFocusVersion] = useState("");
76
+ useEffect(() => {
77
+ let cancelled = false;
78
+ function bootstrap() {
79
+ return __async(this, null, function* () {
80
+ if (shareDataProp && Object.keys(shareDataProp).length > 0) {
81
+ const versions = normalizeShareData(shareDataProp);
82
+ if (!cancelled) {
83
+ setNormalized(versions);
84
+ setLoadingState("idle");
85
+ setErrorMessage(null);
86
+ }
87
+ return;
88
+ }
89
+ if (!cancelled) {
90
+ setLoadingState("idle");
91
+ setErrorMessage(null);
92
+ }
93
+ });
94
+ }
95
+ bootstrap();
96
+ return () => {
97
+ cancelled = true;
98
+ };
99
+ }, [shareDataProp]);
100
+ const stats = useMemo(() => computeShareStats(normalized), [normalized]);
101
+ const filterOptions = useMemo(
102
+ () => getFilterOptions(normalized),
103
+ [normalized]
104
+ );
105
+ useEffect(() => {
106
+ const { scopes } = filterOptions;
107
+ if (!scopes.length) {
108
+ return;
109
+ }
110
+ if (!scopes.includes(chartScope)) {
111
+ if (scopes.includes("default")) {
112
+ setChartScope("default");
113
+ } else {
114
+ setChartScope(scopes[0]);
115
+ }
116
+ }
117
+ }, [filterOptions.scopes, chartScope]);
118
+ const filteredVersions = useMemo(() => {
119
+ const keyword = searchText.trim().toLowerCase();
120
+ return normalized.filter((v) => {
121
+ if (selectedProvider && v.from !== selectedProvider) {
122
+ return false;
123
+ }
124
+ if (selectedPackage && v.packageName !== selectedPackage) {
125
+ return false;
126
+ }
127
+ if (selectedVersion && v.version !== selectedVersion) {
128
+ return false;
129
+ }
130
+ if (keyword && !v.packageName.toLowerCase().includes(keyword)) {
131
+ return false;
132
+ }
133
+ return true;
134
+ });
135
+ }, [
136
+ normalized,
137
+ selectedProvider,
138
+ selectedPackage,
139
+ selectedVersion,
140
+ searchText
141
+ ]);
142
+ const tree = useMemo(
143
+ () => groupByProviderScopePackage(filteredVersions),
144
+ [filteredVersions]
145
+ );
146
+ const versionsForSelectedPackage = useMemo(() => {
147
+ if (!selectedPackage) {
148
+ return [];
149
+ }
150
+ const set = /* @__PURE__ */ new Set();
151
+ normalized.forEach((v) => {
152
+ if (v.packageName === selectedPackage) {
153
+ set.add(v.version);
154
+ }
155
+ });
156
+ return Array.from(set).sort();
157
+ }, [normalized, selectedPackage]);
158
+ const focusVersionsForPackage = useMemo(() => {
159
+ if (!focusPackage) {
160
+ return [];
161
+ }
162
+ const set = /* @__PURE__ */ new Set();
163
+ normalized.forEach((v) => {
164
+ if (v.packageName === focusPackage) {
165
+ set.add(v.version);
166
+ }
167
+ });
168
+ return Array.from(set).sort();
169
+ }, [normalized, focusPackage]);
170
+ const focusResult = useMemo(() => {
171
+ if (!focusPackage) {
172
+ return null;
173
+ }
174
+ return findPackageProvider(
175
+ normalized,
176
+ focusPackage,
177
+ focusVersion || void 0
178
+ );
179
+ }, [normalized, focusPackage, focusVersion]);
180
+ const hasData = normalized.length > 0;
181
+ const columns = [
182
+ {
183
+ title: t("sharedDeps.table.columns.packageVersion"),
184
+ width: "28%",
185
+ render: (_, item) => /* @__PURE__ */ jsxs("div", { className: styles.cellCol, children: [
186
+ /* @__PURE__ */ jsx("div", { className: styles.packageName, children: item.packageName }),
187
+ /* @__PURE__ */ jsxs("div", { className: styles.version, children: [
188
+ "v",
189
+ item.version
190
+ ] })
191
+ ] })
192
+ },
193
+ {
194
+ title: t("sharedDeps.table.columns.providerScope"),
195
+ width: "20%",
196
+ render: (_, item) => /* @__PURE__ */ jsxs("div", { className: styles.cellColGap, children: [
197
+ /* @__PURE__ */ jsx("span", { className: styles.truncate, title: item.from, children: t("sharedDeps.table.providerPrefix", { name: item.from }) }),
198
+ /* @__PURE__ */ jsx("span", { className: styles.scopeText, children: t("sharedDeps.table.scopePrefix", { scope: item.scope }) })
199
+ ] })
200
+ },
201
+ {
202
+ title: t("sharedDeps.table.columns.status"),
203
+ width: "22%",
204
+ render: (_, item) => /* @__PURE__ */ jsxs("div", { className: styles.cellColGap, children: [
205
+ ["loaded", "loading"].includes(item.loadedStatus) ? /* @__PURE__ */ jsx(
206
+ Tag,
207
+ {
208
+ size: "small",
209
+ className: `${styles.tagContainer} loaded-status-tag`,
210
+ children: loadedStatusLabelLocal(item.loadedStatus)
211
+ }
212
+ ) : null,
213
+ /* @__PURE__ */ jsxs("div", { className: styles.configTags, children: [
214
+ item.shareConfig.singleton && /* @__PURE__ */ jsx(Tag, { size: "small", className: styles.scale90, children: "singleton" }),
215
+ item.shareConfig.eager && /* @__PURE__ */ jsx(Tag, { size: "small", className: styles.scale90, children: "eager" }),
216
+ item.shareConfig.strictVersion && /* @__PURE__ */ jsx(Tag, { size: "small", className: styles.scale90, children: "strictVersion" }),
217
+ item.shareConfig.requiredVersion && /* @__PURE__ */ jsxs(Tag, { size: "small", className: styles.scale90, children: [
218
+ "req: ",
219
+ item.shareConfig.requiredVersion
220
+ ] })
221
+ ] })
222
+ ] })
223
+ },
224
+ {
225
+ title: t("sharedDeps.table.columns.consumers"),
226
+ width: "18%",
227
+ render: (_, item) => /* @__PURE__ */ jsx(
228
+ Popover,
229
+ {
230
+ trigger: "click",
231
+ position: "right",
232
+ content: /* @__PURE__ */ jsxs("div", { className: styles.popoverContent, children: [
233
+ /* @__PURE__ */ jsx("div", { className: styles.popoverTitle, children: t("sharedDeps.consumersPopover.title") }),
234
+ item.useIn.length === 0 ? /* @__PURE__ */ jsx("p", { className: styles.scopeText, children: t("sharedDeps.consumersPopover.empty") }) : /* @__PURE__ */ jsx("ul", { className: styles.consumerList, children: item.useIn.map((c) => /* @__PURE__ */ jsxs("li", { className: styles.consumerItem, children: [
235
+ /* @__PURE__ */ jsx("span", { className: styles.dot }),
236
+ /* @__PURE__ */ jsx("span", { className: styles.packageName, children: c })
237
+ ] }, c)) })
238
+ ] }),
239
+ children: /* @__PURE__ */ jsx(Button, { size: "mini", type: "secondary", children: /* @__PURE__ */ jsxs("div", { className: styles.btnContent, children: [
240
+ /* @__PURE__ */ jsx(Network, { className: styles.mr1, size: 12 }),
241
+ /* @__PURE__ */ jsx("span", { children: t("sharedDeps.consumersPopover.button", {
242
+ count: item.useIn.length || 0
243
+ }) })
244
+ ] }) })
245
+ }
246
+ )
247
+ },
248
+ {
249
+ title: t("sharedDeps.table.columns.strategy"),
250
+ width: "12%",
251
+ render: (_, item) => {
252
+ var _a;
253
+ return /* @__PURE__ */ jsx(Tag, { size: "small", color: "gray", children: (_a = item.strategy) != null ? _a : t("sharedDeps.table.strategyFallback") });
254
+ }
255
+ }
256
+ ];
257
+ return /* @__PURE__ */ jsxs("div", { className: styles.container, children: [
258
+ /* @__PURE__ */ jsxs("section", { className: styles.heroSection, children: [
259
+ /* @__PURE__ */ jsx("p", { className: styles.heroSubtitle, children: t("sharedDeps.hero.subtitle") }),
260
+ /* @__PURE__ */ jsx("h1", { className: styles.heroTitle, children: t("sharedDeps.hero.title") })
261
+ ] }),
262
+ /* @__PURE__ */ jsx("section", { children: /* @__PURE__ */ jsxs("div", { className: styles.statsGrid, children: [
263
+ /* @__PURE__ */ jsxs(Card, { className: styles.cardWithPadding, children: [
264
+ /* @__PURE__ */ jsx("div", { className: styles.cardHeader, children: /* @__PURE__ */ jsxs("div", { className: styles.statSpace, children: [
265
+ /* @__PURE__ */ jsx("div", { className: styles.statLabel, children: t("sharedDeps.stats.providers.title") }),
266
+ /* @__PURE__ */ jsxs("div", { className: styles.statValue, children: [
267
+ /* @__PURE__ */ jsx(Server, { className: styles.icon }),
268
+ /* @__PURE__ */ jsx("span", { children: stats.totalProviders })
269
+ ] })
270
+ ] }) }),
271
+ /* @__PURE__ */ jsx("p", { className: styles.statDescription, children: t("sharedDeps.stats.providers.description") })
272
+ ] }),
273
+ /* @__PURE__ */ jsxs(Card, { className: styles.cardWithPadding, children: [
274
+ /* @__PURE__ */ jsx("div", { className: styles.cardHeader, children: /* @__PURE__ */ jsxs("div", { className: styles.statSpace, children: [
275
+ /* @__PURE__ */ jsx("div", { className: styles.statLabel, children: t("sharedDeps.stats.scopes.title") }),
276
+ /* @__PURE__ */ jsxs("div", { className: styles.statValue, children: [
277
+ /* @__PURE__ */ jsx(Layers, { className: styles.icon }),
278
+ /* @__PURE__ */ jsx("span", { children: stats.totalScopes }),
279
+ /* @__PURE__ */ jsx("span", { className: styles.statSubtext, children: t("sharedDeps.stats.scopes.badge") })
280
+ ] })
281
+ ] }) }),
282
+ /* @__PURE__ */ jsxs("div", { className: styles.cardFooter, children: [
283
+ /* @__PURE__ */ jsx("span", { className: `${styles.truncate} ${styles.mr2}`, children: t("sharedDeps.stats.scopes.description") }),
284
+ /* @__PURE__ */ jsxs("span", { className: styles.badgeGroup, children: [
285
+ /* @__PURE__ */ jsx(Box, { className: styles.iconSmall }),
286
+ /* @__PURE__ */ jsxs("span", { children: [
287
+ stats.totalPackages,
288
+ t("sharedDeps.stats.scopes.packagesBadge", {
289
+ count: stats.totalPackages
290
+ })
291
+ ] })
292
+ ] })
293
+ ] })
294
+ ] }),
295
+ /* @__PURE__ */ jsxs(Card, { className: styles.cardWithPadding, children: [
296
+ /* @__PURE__ */ jsx("div", { className: styles.cardHeader, children: /* @__PURE__ */ jsxs("div", { className: styles.statSpace, children: [
297
+ /* @__PURE__ */ jsx("div", { className: styles.statLabel, children: t("sharedDeps.stats.versions.title") }),
298
+ /* @__PURE__ */ jsxs("div", { className: styles.statValue, children: [
299
+ /* @__PURE__ */ jsx(Package2, { className: styles.icon }),
300
+ /* @__PURE__ */ jsx("span", { children: stats.totalVersions })
301
+ ] })
302
+ ] }) }),
303
+ /* @__PURE__ */ jsx("div", { className: styles.statusTags, children: /* @__PURE__ */ jsxs("div", { className: styles.tagRow, children: [
304
+ /* @__PURE__ */ jsx(Tag, { className: `${styles.tagContent} loaded-status-tag`, children: /* @__PURE__ */ jsxs("div", { className: styles.tagContent, children: [
305
+ /* @__PURE__ */ jsx(Network, { className: `${styles.iconSmall} ${styles.mr1}` }),
306
+ /* @__PURE__ */ jsx("span", { children: t("sharedDeps.stats.versions.loadedLabel") }),
307
+ /* @__PURE__ */ jsx("span", { className: styles.tagValue, children: stats.loadedCount })
308
+ ] }) }),
309
+ /* @__PURE__ */ jsx(Tag, { className: `${styles.tagContent} reused-status-tag`, children: /* @__PURE__ */ jsxs("div", { className: styles.tagContent, children: [
310
+ /* @__PURE__ */ jsx(Repeat, { className: `${styles.iconSmall} ${styles.mr1}` }),
311
+ /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx("span", { children: t("sharedDeps.stats.versions.reusedLabel") }) }),
312
+ /* @__PURE__ */ jsx("span", { className: styles.tagValue, children: stats.reusedCount })
313
+ ] }) })
314
+ ] }) })
315
+ ] })
316
+ ] }) }),
317
+ /* @__PURE__ */ jsx("section", { className: styles.rightPanels, children: /* @__PURE__ */ jsx("div", { className: styles.panelStack, children: /* @__PURE__ */ jsxs(
318
+ Card,
319
+ {
320
+ className: styles.card,
321
+ title: /* @__PURE__ */ jsxs("div", { className: styles.cardTitle, children: [
322
+ /* @__PURE__ */ jsx(Box, { className: styles.iconMedium }),
323
+ t("sharedDeps.focusPanel.title", { package: focusPackage })
324
+ ] }),
325
+ children: [
326
+ /* @__PURE__ */ jsxs("div", { className: styles.controlsGrid, children: [
327
+ /* @__PURE__ */ jsxs("div", { className: styles.inputGroup, children: [
328
+ /* @__PURE__ */ jsx("div", { className: styles.inputLabel, children: t("sharedDeps.focusPanel.packageLabel") }),
329
+ /* @__PURE__ */ jsx(
330
+ Select,
331
+ {
332
+ showSearch: true,
333
+ value: focusPackage,
334
+ onChange: (value) => {
335
+ setFocusPackage(value);
336
+ setFocusVersion("");
337
+ },
338
+ placeholder: t("sharedDeps.focusPanel.packagePlaceholder"),
339
+ className: styles.fullWidth,
340
+ children: filterOptions.packages.map((name) => /* @__PURE__ */ jsx(Select.Option, { value: name, children: name }, name))
341
+ }
342
+ )
343
+ ] }),
344
+ /* @__PURE__ */ jsxs("div", { className: styles.inputGroup, children: [
345
+ /* @__PURE__ */ jsx("div", { className: styles.inputLabel, children: t("sharedDeps.focusPanel.versionLabel") }),
346
+ /* @__PURE__ */ jsxs(
347
+ Select,
348
+ {
349
+ showSearch: true,
350
+ value: focusVersion || ALL_VALUE,
351
+ onChange: (value) => setFocusVersion(value === ALL_VALUE ? "" : value),
352
+ placeholder: t("sharedDeps.focusPanel.versionPlaceholder"),
353
+ className: styles.fullWidth,
354
+ children: [
355
+ /* @__PURE__ */ jsx(Select.Option, { value: ALL_VALUE, children: t("sharedDeps.focusPanel.versionAllOption") }),
356
+ focusVersionsForPackage.map((v) => /* @__PURE__ */ jsx(Select.Option, { value: v, children: v }, v))
357
+ ]
358
+ }
359
+ )
360
+ ] })
361
+ ] }),
362
+ /* @__PURE__ */ jsx("div", { className: styles.resultBox, children: /* @__PURE__ */ jsx(
363
+ FocusResultDisplay,
364
+ {
365
+ focusResult,
366
+ hasData,
367
+ loadedStatusLabel: loadedStatusLabelLocal
368
+ }
369
+ ) })
370
+ ]
371
+ }
372
+ ) }) }),
373
+ /* @__PURE__ */ jsx("section", { children: /* @__PURE__ */ jsxs(
374
+ Card,
375
+ {
376
+ className: styles.card,
377
+ title: /* @__PURE__ */ jsxs("div", { className: styles.cardTitle, children: [
378
+ /* @__PURE__ */ jsx(Search, { className: styles.iconMedium }),
379
+ t("sharedDeps.filters.cardTitle")
380
+ ] }),
381
+ children: [
382
+ /* @__PURE__ */ jsxs("div", { className: styles.filterGrid, children: [
383
+ /* @__PURE__ */ jsxs("div", { className: `${styles.inputGroup} ${styles.padding2}`, children: [
384
+ /* @__PURE__ */ jsx("div", { className: styles.inputLabel, children: t("sharedDeps.filters.providerLabel") }),
385
+ /* @__PURE__ */ jsx(
386
+ Select,
387
+ {
388
+ value: selectedProvider || void 0,
389
+ onChange: (value) => setSelectedProvider(value === ALL_VALUE ? "" : value),
390
+ placeholder: t("sharedDeps.filters.providerPlaceholder"),
391
+ className: styles.fullWidth,
392
+ allowClear: true,
393
+ children: filterOptions.providers.map((p) => /* @__PURE__ */ jsx(Select.Option, { value: p, children: p }, p))
394
+ }
395
+ )
396
+ ] }),
397
+ /* @__PURE__ */ jsxs("div", { className: `${styles.inputGroup} ${styles.padding2}`, children: [
398
+ /* @__PURE__ */ jsx("div", { className: styles.inputLabel, children: t("sharedDeps.filters.packageLabel") }),
399
+ /* @__PURE__ */ jsx(
400
+ Select,
401
+ {
402
+ value: selectedPackage || void 0,
403
+ onChange: (value) => setSelectedPackage(value === ALL_VALUE ? "" : value),
404
+ placeholder: t("sharedDeps.filters.packagePlaceholder"),
405
+ className: styles.fullWidth,
406
+ allowClear: true,
407
+ children: filterOptions.packages.map((name) => /* @__PURE__ */ jsx(Select.Option, { value: name, children: name }, name))
408
+ }
409
+ )
410
+ ] }),
411
+ /* @__PURE__ */ jsxs("div", { className: `${styles.inputGroup} ${styles.padding2}`, children: [
412
+ /* @__PURE__ */ jsx("div", { className: styles.inputLabel, children: t("sharedDeps.filters.versionLabel") }),
413
+ /* @__PURE__ */ jsx(
414
+ Select,
415
+ {
416
+ value: selectedVersion || void 0,
417
+ onChange: (value) => setSelectedVersion(value === ALL_VALUE ? "" : value),
418
+ placeholder: t("sharedDeps.filters.versionPlaceholder"),
419
+ className: styles.fullWidth,
420
+ disabled: !selectedPackage,
421
+ allowClear: true,
422
+ children: versionsForSelectedPackage.map((v) => /* @__PURE__ */ jsx(Select.Option, { value: v, children: v }, v))
423
+ }
424
+ )
425
+ ] })
426
+ ] }),
427
+ /* @__PURE__ */ jsxs("div", { className: styles.searchGrid, children: [
428
+ /* @__PURE__ */ jsxs("div", { className: styles.inputGroup, children: [
429
+ /* @__PURE__ */ jsx("div", { className: styles.inputLabel, children: t("sharedDeps.filters.keywordLabel") }),
430
+ /* @__PURE__ */ jsx(
431
+ Input,
432
+ {
433
+ prefix: /* @__PURE__ */ jsx(Search, { className: styles.iconMedium }),
434
+ className: styles.searchInput,
435
+ placeholder: t("sharedDeps.filters.keywordPlaceholder"),
436
+ value: searchText,
437
+ onChange: (val) => setSearchText(val)
438
+ }
439
+ )
440
+ ] }),
441
+ /* @__PURE__ */ jsx("div", { className: styles.matchCount, children: /* @__PURE__ */ jsxs("span", { children: [
442
+ t("sharedDeps.filters.matchCountLabel"),
443
+ /* @__PURE__ */ jsx("span", { className: styles.matchValue, children: filteredVersions.length })
444
+ ] }) })
445
+ ] }),
446
+ !hasData && loadingState === "loading" && /* @__PURE__ */ jsx("div", { className: styles.loadingText, children: t("sharedDeps.messages.loading") }),
447
+ loadingState === "error" && /* @__PURE__ */ jsx("div", { className: styles.errorText, children: errorMessage ? t("sharedDeps.messages.error", { message: errorMessage }) : t("sharedDeps.messages.errorUnknown") }),
448
+ hasData && Object.keys(tree).length === 0 && /* @__PURE__ */ jsx("div", { className: styles.noMatchText, children: t("sharedDeps.messages.noMatch") }),
449
+ hasData && Object.keys(tree).length > 0 && /* @__PURE__ */ jsx("div", { className: styles.treeContainer, children: /* @__PURE__ */ jsx("div", { className: styles.collapseWrapper, children: /* @__PURE__ */ jsx(Collapse, { children: Object.entries(tree).map(([provider, scopes]) => /* @__PURE__ */ jsx(
450
+ Collapse.Item,
451
+ {
452
+ name: provider,
453
+ header: /* @__PURE__ */ jsxs("div", { className: styles.providerHeader, children: [
454
+ /* @__PURE__ */ jsxs("div", { className: styles.providerTitle, children: [
455
+ /* @__PURE__ */ jsx(Server, { className: styles.iconMedium }),
456
+ /* @__PURE__ */ jsx("span", { children: provider })
457
+ ] }),
458
+ /* @__PURE__ */ jsx("div", { className: styles.providerMeta, children: /* @__PURE__ */ jsx("span", { children: t("sharedDeps.filters.scopeCount", {
459
+ count: Object.keys(scopes).length
460
+ }) }) })
461
+ ] }),
462
+ children: /* @__PURE__ */ jsx("div", { className: styles.scopeList, children: Object.entries(scopes).map(([scopeName, packages]) => {
463
+ const list = Object.values(packages).flat();
464
+ return /* @__PURE__ */ jsxs("div", { className: styles.scopeItem, children: [
465
+ /* @__PURE__ */ jsxs("div", { className: styles.scopeHeader, children: [
466
+ /* @__PURE__ */ jsx(Layers, { className: styles.iconSmall }),
467
+ /* @__PURE__ */ jsx("span", { children: t("sharedDeps.filters.scopePrefix", {
468
+ name: scopeName
469
+ }) })
470
+ ] }),
471
+ /* @__PURE__ */ jsx("div", { className: styles.tableContainer, children: /* @__PURE__ */ jsx(
472
+ Table,
473
+ {
474
+ columns,
475
+ data: list,
476
+ pagination: false,
477
+ rowKey: "id",
478
+ border: false,
479
+ size: "small"
480
+ }
481
+ ) })
482
+ ] }, scopeName);
483
+ }) })
484
+ },
485
+ provider
486
+ )) }) }) })
487
+ ]
488
+ }
489
+ ) })
490
+ ] });
491
+ }
492
+ var SharedDepsExplorer_default = SharedDepsExplorer;
493
+ export {
494
+ SharedDepsExplorer_default as default
495
+ };
@@ -0,0 +1,5 @@
1
+ import "./index_module.css";
2
+ var index_module_default = { "container": "container_967de", "heroSection": "heroSection_967de", "heroSubtitle": "heroSubtitle_967de", "heroTitle": "heroTitle_967de", "statsGrid": "statsGrid_967de", "card": "card_967de", "cardWithPadding": "cardWithPadding_967de", "cardHeader": "cardHeader_967de", "statSpace": "statSpace_967de", "statLabel": "statLabel_967de", "statValue": "statValue_967de", "icon": "icon_967de", "iconSmall": "iconSmall_967de", "iconMedium": "iconMedium_967de", "statDescription": "statDescription_967de", "statSubtext": "statSubtext_967de", "cardFooter": "cardFooter_967de", "truncate": "truncate_967de", "mr2": "mr2_967de", "badgeGroup": "badgeGroup_967de", "statusTags": "statusTags_967de", "tagRow": "tagRow_967de", "tagContent": "tagContent_967de", "tagValue": "tagValue_967de", "mr1": "mr1_967de", "rightPanels": "rightPanels_967de", "panelStack": "panelStack_967de", "cardTitle": "cardTitle_967de", "controlsGrid": "controlsGrid_967de", "inputGroup": "inputGroup_967de", "inputLabel": "inputLabel_967de", "fullWidth": "fullWidth_967de", "resultBox": "resultBox_967de", "filterGrid": "filterGrid_967de", "padding2": "padding2_967de", "searchGrid": "searchGrid_967de", "searchInput": "searchInput_967de", "matchCount": "matchCount_967de", "matchValue": "matchValue_967de", "loadingText": "loadingText_967de", "errorText": "errorText_967de", "noMatchText": "noMatchText_967de", "treeContainer": "treeContainer_967de", "collapseWrapper": "collapseWrapper_967de", "providerHeader": "providerHeader_967de", "providerTitle": "providerTitle_967de", "providerMeta": "providerMeta_967de", "scopeList": "scopeList_967de", "scopeItem": "scopeItem_967de", "scopeHeader": "scopeHeader_967de", "tableContainer": "tableContainer_967de", "cellCol": "cellCol_967de", "packageName": "packageName_967de", "version": "version_967de", "cellColGap": "cellColGap_967de", "scopeText": "scopeText_967de", "tagContainer": "tagContainer_967de", "configTags": "configTags_967de", "scale90": "scale90_967de", "popoverContent": "popoverContent_967de", "popoverTitle": "popoverTitle_967de", "consumerList": "consumerList_967de", "consumerItem": "consumerItem_967de", "dot": "dot_967de", "btnContent": "btnContent_967de" };
3
+ export {
4
+ index_module_default as default
5
+ };