@bundle-stats/ui 3.2.8 → 3.2.9-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/lib/app/app.js +124 -79
- package/lib/components/asset-info/asset-info.module.css +1 -0
- package/lib/components/bundle-assets/bundle-assets.js +97 -57
- package/lib/components/bundle-assets/bundle-assets.module.css +19 -13
- package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.js +13 -3
- package/lib/components/bundle-modules/bundle-modules.js +49 -64
- package/lib/components/bundle-packages/bundle-packages.js +94 -46
- package/lib/components/bundle-packages/bundle-packages.module.css +14 -14
- package/lib/components/metrics-table/metrics-table.js +72 -59
- package/lib/components/metrics-table/metrics-table.module.css +18 -7
- package/lib/components/module-info/module-info.js +2 -2
- package/lib/hooks/search-params.js +25 -25
- package/lib/ui/empty-set/empty-set.js +5 -4
- package/lib/ui/empty-set/empty-set.module.css +2 -2
- package/lib/ui/hover-card/hover-card.js +6 -5
- package/lib/ui/hover-card/hover-card.module.css +6 -7
- package/lib/ui/table/table.js +5 -74
- package/lib/ui/table/table.module.css +23 -19
- package/lib/ui/table/table.stories.js +1 -1
- package/lib/ui/tooltip/tooltip.module.css +1 -0
- package/lib-esm/app/app.js +118 -76
- package/lib-esm/components/asset-info/asset-info.module.css +1 -0
- package/lib-esm/components/bundle-assets/bundle-assets.js +91 -61
- package/lib-esm/components/bundle-assets/bundle-assets.module.css +19 -13
- package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js +6 -3
- package/lib-esm/components/bundle-modules/bundle-modules.js +31 -47
- package/lib-esm/components/bundle-packages/bundle-packages.js +83 -43
- package/lib-esm/components/bundle-packages/bundle-packages.module.css +14 -14
- package/lib-esm/components/metrics-table/metrics-table.js +61 -53
- package/lib-esm/components/metrics-table/metrics-table.module.css +18 -7
- package/lib-esm/components/module-info/module-info.js +2 -2
- package/lib-esm/hooks/search-params.js +21 -22
- package/lib-esm/ui/empty-set/empty-set.js +4 -4
- package/lib-esm/ui/empty-set/empty-set.module.css +2 -2
- package/lib-esm/ui/hover-card/hover-card.js +6 -5
- package/lib-esm/ui/hover-card/hover-card.module.css +6 -7
- package/lib-esm/ui/table/table.js +5 -65
- package/lib-esm/ui/table/table.module.css +23 -19
- package/lib-esm/ui/table/table.stories.js +1 -1
- package/lib-esm/ui/tooltip/tooltip.module.css +1 -0
- package/package.json +3 -3
- package/src/app/app.jsx +135 -133
- package/src/components/asset-info/asset-info.module.css +1 -0
- package/src/components/bundle-assets/bundle-assets.jsx +94 -59
- package/src/components/bundle-assets/bundle-assets.module.css +19 -13
- package/src/components/bundle-assets-totals-table/bundle-assets-totals-table.jsx +2 -0
- package/src/components/bundle-modules/bundle-modules.jsx +28 -38
- package/src/components/bundle-packages/bundle-packages.jsx +80 -43
- package/src/components/bundle-packages/bundle-packages.module.css +14 -14
- package/src/components/metrics-table/metrics-table.jsx +53 -44
- package/src/components/metrics-table/metrics-table.module.css +18 -7
- package/src/components/module-info/module-info.jsx +2 -2
- package/src/hooks/search-params.js +24 -22
- package/src/ui/empty-set/empty-set.jsx +25 -21
- package/src/ui/empty-set/empty-set.module.css +2 -2
- package/src/ui/hover-card/hover-card.jsx +5 -10
- package/src/ui/hover-card/hover-card.module.css +6 -7
- package/src/ui/table/table.jsx +5 -52
- package/src/ui/table/table.module.css +23 -19
- package/src/ui/tooltip/tooltip.module.css +1 -0
|
@@ -1,67 +1,7 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
1
|
import React from 'react';
|
|
4
2
|
import PropTypes from 'prop-types';
|
|
5
3
|
import cx from 'classnames';
|
|
6
4
|
import css from './table.module.css';
|
|
7
|
-
|
|
8
|
-
const THead = props => /*#__PURE__*/React.createElement("thead", props);
|
|
9
|
-
|
|
10
|
-
const TBody = props => /*#__PURE__*/React.createElement("tbody", props);
|
|
11
|
-
|
|
12
|
-
const Tr = props => {
|
|
13
|
-
const {
|
|
14
|
-
className,
|
|
15
|
-
...restProps
|
|
16
|
-
} = props;
|
|
17
|
-
return /*#__PURE__*/React.createElement("tr", _extends({
|
|
18
|
-
className: cx(css.row, className)
|
|
19
|
-
}, restProps));
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
Tr.defaultProps = {
|
|
23
|
-
className: ''
|
|
24
|
-
};
|
|
25
|
-
Tr.propTypes = {
|
|
26
|
-
/** Adopted child class name */
|
|
27
|
-
className: PropTypes.string
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const Th = props => {
|
|
31
|
-
const {
|
|
32
|
-
className,
|
|
33
|
-
...restProps
|
|
34
|
-
} = props;
|
|
35
|
-
return /*#__PURE__*/React.createElement("th", _extends({
|
|
36
|
-
className: cx(css.cell, className)
|
|
37
|
-
}, restProps));
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
Th.defaultProps = {
|
|
41
|
-
className: ''
|
|
42
|
-
};
|
|
43
|
-
Th.propTypes = {
|
|
44
|
-
/** Adopted child class name */
|
|
45
|
-
className: PropTypes.string
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const Td = props => {
|
|
49
|
-
const {
|
|
50
|
-
className,
|
|
51
|
-
...restProps
|
|
52
|
-
} = props;
|
|
53
|
-
return /*#__PURE__*/React.createElement("td", _extends({
|
|
54
|
-
className: cx(css.cell, className)
|
|
55
|
-
}, restProps));
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
Td.defaultProps = {
|
|
59
|
-
className: ''
|
|
60
|
-
};
|
|
61
|
-
Td.propTypes = {
|
|
62
|
-
/** Adopted child class name */
|
|
63
|
-
className: PropTypes.string
|
|
64
|
-
};
|
|
65
5
|
export const Table = _ref => {
|
|
66
6
|
let {
|
|
67
7
|
className,
|
|
@@ -82,11 +22,11 @@ export const Table = _ref => {
|
|
|
82
22
|
className: rootClassName
|
|
83
23
|
}, children);
|
|
84
24
|
};
|
|
85
|
-
Table.THead =
|
|
86
|
-
Table.TBody =
|
|
87
|
-
Table.
|
|
88
|
-
Table.
|
|
89
|
-
Table.Td =
|
|
25
|
+
Table.THead = 'thead';
|
|
26
|
+
Table.TBody = 'tbody';
|
|
27
|
+
Table.Tr = 'tr';
|
|
28
|
+
Table.Th = 'th';
|
|
29
|
+
Table.Td = 'td';
|
|
90
30
|
Table.defaultProps = {
|
|
91
31
|
className: '',
|
|
92
32
|
emptyMessage: 'No entries found.',
|
|
@@ -4,48 +4,51 @@
|
|
|
4
4
|
border-spacing: 0;
|
|
5
5
|
empty-cells: show;
|
|
6
6
|
background: var(--color-background);
|
|
7
|
+
text-align: left;
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
.
|
|
10
|
+
.root th,
|
|
11
|
+
.root td {
|
|
10
12
|
border: 1px solid var(--color-outline);
|
|
11
13
|
border-width: 1px 0 0;
|
|
12
|
-
padding: var(--space-small)
|
|
13
|
-
text-align: left;
|
|
14
|
+
padding: var(--space-small);
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
.root thead
|
|
17
|
+
.root thead th {
|
|
17
18
|
border-width: 0 0 1px;
|
|
18
19
|
text-transform: uppercase;
|
|
19
20
|
vertical-align: top;
|
|
20
21
|
background: var(--color-highlight);
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
.root thead
|
|
24
|
+
.root thead th:empty {
|
|
24
25
|
display: none;
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
.root tbody
|
|
28
|
+
.root tbody th {
|
|
28
29
|
font-weight: normal;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
.root tbody tr:first-child
|
|
32
|
+
.root tbody tr:first-child td,
|
|
33
|
+
.root tbody tr:first-child th {
|
|
32
34
|
border-top: 0;
|
|
33
35
|
}
|
|
34
36
|
|
|
35
|
-
.root tbody
|
|
37
|
+
.root tbody td a {
|
|
36
38
|
color: inherit;
|
|
37
39
|
text-decoration: none;
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
.root tbody
|
|
41
|
-
.root tbody
|
|
42
|
-
.root tbody
|
|
42
|
+
.root tbody td a:hover,
|
|
43
|
+
.root tbody td a:focus,
|
|
44
|
+
.root tbody td a:active
|
|
43
45
|
{
|
|
44
46
|
color: var(--color-primary);
|
|
45
47
|
text-decoration: underline;
|
|
46
48
|
}
|
|
47
49
|
|
|
48
|
-
.root tbody tr:hover
|
|
50
|
+
.root tbody tr:hover th,
|
|
51
|
+
.root tbody tr:hover td {
|
|
49
52
|
background-color: var(--color-highlight-warning);
|
|
50
53
|
}
|
|
51
54
|
|
|
@@ -64,21 +67,21 @@
|
|
|
64
67
|
border-radius: var(--table-radius);
|
|
65
68
|
}
|
|
66
69
|
|
|
67
|
-
.outline thead tr:first-child
|
|
68
|
-
.outline tbody:first-child tr:first-child
|
|
70
|
+
.outline thead:first-child tr:first-child th:first-child,
|
|
71
|
+
.outline tbody:first-child tr:first-child td:first-child {
|
|
69
72
|
border-top-left-radius: var(--table-radius);
|
|
70
73
|
}
|
|
71
74
|
|
|
72
|
-
.outline thead tr:first-child
|
|
73
|
-
.outline tbody:first-child tr:first-child
|
|
75
|
+
.outline thead tr:first-child th:last-child,
|
|
76
|
+
.outline tbody:first-child tr:first-child td:last-child {
|
|
74
77
|
border-top-right-radius: var(--table-radius);
|
|
75
78
|
}
|
|
76
79
|
|
|
77
|
-
.outline tbody:last-child tr:last-child
|
|
80
|
+
.outline tbody:last-child tr:last-child td:first-child {
|
|
78
81
|
border-bottom-left-radius: var(--table-radius);
|
|
79
82
|
}
|
|
80
83
|
|
|
81
|
-
.outline tbody:last-child tr:last-child
|
|
84
|
+
.outline tbody:last-child tr:last-child td:last-child {
|
|
82
85
|
border-bottom-right-radius: var(--table-radius);
|
|
83
86
|
}
|
|
84
87
|
|
|
@@ -87,7 +90,8 @@
|
|
|
87
90
|
}
|
|
88
91
|
|
|
89
92
|
/* compact variation */
|
|
90
|
-
.compact
|
|
93
|
+
.compact td,
|
|
94
|
+
.compact th {
|
|
91
95
|
padding-top: var(--space-xsmall);
|
|
92
96
|
padding-bottom: var(--space-xsmall);
|
|
93
97
|
}
|
|
@@ -46,7 +46,7 @@ stories.add('with custom content and attributes', () => /*#__PURE__*/React.creat
|
|
|
46
46
|
style: {
|
|
47
47
|
textDecoration: 'underline'
|
|
48
48
|
}
|
|
49
|
-
}, "Col C(
|
|
49
|
+
}, "Col C(underline)"))), /*#__PURE__*/React.createElement(TBody, null, /*#__PURE__*/React.createElement(Tr, null, /*#__PURE__*/React.createElement(Th, null, /*#__PURE__*/React.createElement("strong", null, "row 1")), /*#__PURE__*/React.createElement(Td, {
|
|
50
50
|
style: {
|
|
51
51
|
textAlign: 'right'
|
|
52
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bundle-stats/ui",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.9-beta.1",
|
|
4
4
|
"description": "UI components for BundleStats projects.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -85,12 +85,12 @@
|
|
|
85
85
|
"react-router-dom": "5.3.0"
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
|
-
"@bundle-stats/utils": "^3.2.
|
|
88
|
+
"@bundle-stats/utils": "^3.2.9-beta.1",
|
|
89
89
|
"ariakit": "2.0.0-alpha.19",
|
|
90
90
|
"date-fns": "2.28.0",
|
|
91
91
|
"modern-css-reset": "1.4.0",
|
|
92
92
|
"query-string": "7.1.1",
|
|
93
93
|
"use-query-params": "1.2.3"
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "a441f0e13edd57a72ae69a7f847483e38b072226"
|
|
96
96
|
}
|
package/src/app/app.jsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect } from 'react';
|
|
1
|
+
import React, { useContext, useEffect, useMemo } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { HashRouter, NavLink, Route, Switch, useLocation } from 'react-router-dom';
|
|
4
4
|
import { COMPONENT } from '@bundle-stats/utils';
|
|
@@ -56,16 +56,110 @@ Layout.defaultProps = {
|
|
|
56
56
|
version: null,
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
const
|
|
59
|
+
const JobsContext = React.createContext({ jobs: [] });
|
|
60
|
+
const JobsProvider = ({ jobs, ...restProps }) => {
|
|
61
|
+
const value = useMemo(() => ({ jobs }), [jobs]);
|
|
62
|
+
return <JobsContext.Provider value={value} {...restProps} />;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
JobsProvider.propTypes = {
|
|
66
|
+
jobs: PropTypes.arrayOf(PropTypes.object).isRequired,
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const OverviewContent = () => {
|
|
70
|
+
const { jobs } = useContext(JobsContext);
|
|
71
|
+
const { duplicatePackagesCount } = jobs[0].summary.webpack;
|
|
72
|
+
const duplicatePackagesInsights = Boolean(
|
|
73
|
+
duplicatePackagesCount.current || duplicatePackagesCount.baseline,
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
return (
|
|
77
|
+
<Stack space="medium">
|
|
78
|
+
{duplicatePackagesInsights && (
|
|
79
|
+
<Container>
|
|
80
|
+
<DuplicatePackagesWarning
|
|
81
|
+
duplicatePackagesCount={duplicatePackagesCount}
|
|
82
|
+
showDelta={jobs.length > 1}
|
|
83
|
+
/>
|
|
84
|
+
</Container>
|
|
85
|
+
)}
|
|
86
|
+
<Container>
|
|
87
|
+
<Stack space="small">
|
|
88
|
+
<TotalSizeTypeTitle />
|
|
89
|
+
<BundleAssetsTotalsChartBars jobs={jobs} />
|
|
90
|
+
<BundleAssetsTotalsTable jobs={jobs} outline />
|
|
91
|
+
</Stack>
|
|
92
|
+
</Container>
|
|
93
|
+
</Stack>
|
|
94
|
+
);
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
const AssetsContent = () => {
|
|
60
98
|
const [bundleStatsState, bundleStatsSetState] = useComponentQueryState(COMPONENT.BUNDLE_ASSETS);
|
|
61
|
-
const
|
|
62
|
-
|
|
99
|
+
const { jobs } = useContext(JobsContext);
|
|
100
|
+
|
|
101
|
+
return (
|
|
102
|
+
<Container>
|
|
103
|
+
<Stack space="medium">
|
|
104
|
+
<Summary
|
|
105
|
+
keys={METRICS_WEBPACK_ASSETS}
|
|
106
|
+
data={jobs?.[0]?.summary}
|
|
107
|
+
showSummaryItemDelta={jobs?.length !== 1}
|
|
108
|
+
/>
|
|
109
|
+
<Box outline>
|
|
110
|
+
<BundleAssets jobs={jobs} setState={bundleStatsSetState} {...bundleStatsState} />
|
|
111
|
+
</Box>
|
|
112
|
+
</Stack>
|
|
113
|
+
</Container>
|
|
63
114
|
);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const ModulesContent = () => {
|
|
64
118
|
const [bundleModulesState, bundleModulesSetState] = useComponentQueryState(
|
|
65
119
|
COMPONENT.BUNDLE_MODULES,
|
|
66
120
|
);
|
|
121
|
+
const { jobs } = useContext(JobsContext);
|
|
122
|
+
|
|
123
|
+
return (
|
|
124
|
+
<Container>
|
|
125
|
+
<Stack space="medium">
|
|
126
|
+
<Summary
|
|
127
|
+
keys={METRICS_WEBPACK_MODULES}
|
|
128
|
+
data={jobs?.[0]?.summary}
|
|
129
|
+
showSummaryItemDelta={jobs?.length !== 1}
|
|
130
|
+
/>
|
|
131
|
+
<Box outline>
|
|
132
|
+
<BundleModules jobs={jobs} setState={bundleModulesSetState} {...bundleModulesState} />
|
|
133
|
+
</Box>
|
|
134
|
+
</Stack>
|
|
135
|
+
</Container>
|
|
136
|
+
);
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
const PackagesContent = () => {
|
|
140
|
+
const [bundlePackagesState, bundlePackagesSetState] = useComponentQueryState(
|
|
141
|
+
COMPONENT.BUNDLE_PACKAGES,
|
|
142
|
+
);
|
|
143
|
+
const { jobs } = useContext(JobsContext);
|
|
67
144
|
|
|
68
|
-
|
|
145
|
+
return (
|
|
146
|
+
<Container>
|
|
147
|
+
<Stack space="medium">
|
|
148
|
+
<Summary
|
|
149
|
+
keys={METRICS_WEBPACK_PACKAGES}
|
|
150
|
+
data={jobs?.[0]?.summary}
|
|
151
|
+
showSummaryItemDelta={jobs?.length !== 1}
|
|
152
|
+
/>
|
|
153
|
+
<Box outline>
|
|
154
|
+
<BundlePackages jobs={jobs} {...bundlePackagesState} setState={bundlePackagesSetState} />
|
|
155
|
+
</Box>
|
|
156
|
+
</Stack>
|
|
157
|
+
</Container>
|
|
158
|
+
);
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
const AppComponent = ({ version, jobs }) => {
|
|
162
|
+
if (jobs?.length === 0) {
|
|
69
163
|
return (
|
|
70
164
|
<Layout version={version}>
|
|
71
165
|
<Container>
|
|
@@ -75,137 +169,45 @@ const AppComponent = ({ version, jobs }) => {
|
|
|
75
169
|
);
|
|
76
170
|
}
|
|
77
171
|
|
|
78
|
-
const { duplicatePackagesCount } = jobs[0].summary.webpack;
|
|
79
|
-
const duplicatePackagesInsights = Boolean(
|
|
80
|
-
duplicatePackagesCount.current || duplicatePackagesCount.baseline,
|
|
81
|
-
);
|
|
82
|
-
|
|
83
172
|
return (
|
|
84
|
-
<
|
|
85
|
-
<
|
|
86
|
-
<
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
173
|
+
<JobsProvider jobs={jobs}>
|
|
174
|
+
<Layout jobs={jobs} version={version}>
|
|
175
|
+
<Container className={css.summaryContainer}>
|
|
176
|
+
<Summary
|
|
177
|
+
size="large"
|
|
178
|
+
keys={METRICS_WEBPACK_GENERAL}
|
|
179
|
+
data={jobs[0].summary}
|
|
180
|
+
showSummaryItemDelta={jobs.length !== 1}
|
|
181
|
+
/>
|
|
182
|
+
</Container>
|
|
93
183
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
184
|
+
<Container className={css.tabsContainer}>
|
|
185
|
+
<Tabs className={css.tabs}>
|
|
186
|
+
<NavLink exact to={URLS.OVERVIEW} activeClassName={css.tabActive}>
|
|
187
|
+
{I18N.OVERVIEW}
|
|
188
|
+
</NavLink>
|
|
189
|
+
<NavLink exact to={URLS.ASSETS} activeClassName={css.tabActive}>
|
|
190
|
+
{I18N.ASSETS}
|
|
191
|
+
</NavLink>
|
|
192
|
+
<NavLink exact to={URLS.MODULES} activeClassName={css.tabActive}>
|
|
193
|
+
{I18N.MODULES}
|
|
194
|
+
</NavLink>
|
|
195
|
+
<NavLink exact to={URLS.PACKAGES} activeClassName={css.tabActive}>
|
|
196
|
+
{I18N.PACKAGES}
|
|
197
|
+
</NavLink>
|
|
198
|
+
</Tabs>
|
|
199
|
+
</Container>
|
|
110
200
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
exact
|
|
115
|
-
path={URLS.
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
data={jobs[0].summary}
|
|
122
|
-
showSummaryItemDelta={jobs.length !== 1}
|
|
123
|
-
/>
|
|
124
|
-
<Box outline>
|
|
125
|
-
<BundleAssets
|
|
126
|
-
jobs={jobs}
|
|
127
|
-
setState={bundleStatsSetState}
|
|
128
|
-
{...bundleStatsState}
|
|
129
|
-
key={`${location.pathname}_${location.search}`}
|
|
130
|
-
/>
|
|
131
|
-
</Box>
|
|
132
|
-
</Stack>
|
|
133
|
-
</Container>
|
|
134
|
-
)}
|
|
135
|
-
/>
|
|
136
|
-
<Route
|
|
137
|
-
exact
|
|
138
|
-
path={URLS.MODULES}
|
|
139
|
-
render={() => (
|
|
140
|
-
<Container>
|
|
141
|
-
<Stack space="medium">
|
|
142
|
-
<Summary
|
|
143
|
-
keys={METRICS_WEBPACK_MODULES}
|
|
144
|
-
data={jobs[0].summary}
|
|
145
|
-
showSummaryItemDelta={jobs.length !== 1}
|
|
146
|
-
/>
|
|
147
|
-
<Box outline>
|
|
148
|
-
<BundleModules
|
|
149
|
-
jobs={jobs}
|
|
150
|
-
setState={bundleModulesSetState}
|
|
151
|
-
{...bundleModulesState}
|
|
152
|
-
/>
|
|
153
|
-
</Box>
|
|
154
|
-
</Stack>
|
|
155
|
-
</Container>
|
|
156
|
-
)}
|
|
157
|
-
/>
|
|
158
|
-
<Route
|
|
159
|
-
exact
|
|
160
|
-
path={URLS.PACKAGES}
|
|
161
|
-
render={({ location }) => (
|
|
162
|
-
<Container>
|
|
163
|
-
<Stack space="medium">
|
|
164
|
-
<Summary
|
|
165
|
-
keys={METRICS_WEBPACK_PACKAGES}
|
|
166
|
-
data={jobs[0].summary}
|
|
167
|
-
showSummaryItemDelta={jobs.length !== 1}
|
|
168
|
-
/>
|
|
169
|
-
<Box outline>
|
|
170
|
-
<BundlePackages
|
|
171
|
-
jobs={jobs}
|
|
172
|
-
{...bundlePackagesState}
|
|
173
|
-
setState={bundlePackagesSetState}
|
|
174
|
-
key={`${location.pathname}_${location.search}`}
|
|
175
|
-
/>
|
|
176
|
-
</Box>
|
|
177
|
-
</Stack>
|
|
178
|
-
</Container>
|
|
179
|
-
)}
|
|
180
|
-
/>
|
|
181
|
-
<Route
|
|
182
|
-
exact
|
|
183
|
-
path={URLS.OVERVIEW}
|
|
184
|
-
render={() => (
|
|
185
|
-
<Stack space="medium">
|
|
186
|
-
{duplicatePackagesInsights && (
|
|
187
|
-
<Container>
|
|
188
|
-
<DuplicatePackagesWarning
|
|
189
|
-
duplicatePackagesCount={duplicatePackagesCount}
|
|
190
|
-
showDelta={jobs.length > 1}
|
|
191
|
-
/>
|
|
192
|
-
</Container>
|
|
193
|
-
)}
|
|
194
|
-
<Container>
|
|
195
|
-
<Stack space="small">
|
|
196
|
-
<TotalSizeTypeTitle />
|
|
197
|
-
<BundleAssetsTotalsChartBars jobs={jobs} />
|
|
198
|
-
<Box outline>
|
|
199
|
-
<BundleAssetsTotalsTable jobs={jobs} />
|
|
200
|
-
</Box>
|
|
201
|
-
</Stack>
|
|
202
|
-
</Container>
|
|
203
|
-
</Stack>
|
|
204
|
-
)}
|
|
205
|
-
/>
|
|
206
|
-
</Switch>
|
|
207
|
-
</div>
|
|
208
|
-
</Layout>
|
|
201
|
+
<div className={css.tabsContent}>
|
|
202
|
+
<Switch>
|
|
203
|
+
<Route exact path={URLS.ASSETS} component={AssetsContent} />
|
|
204
|
+
<Route exact path={URLS.MODULES} component={ModulesContent} />
|
|
205
|
+
<Route exact path={URLS.PACKAGES} component={PackagesContent} />
|
|
206
|
+
<Route exact path={URLS.OVERVIEW} component={OverviewContent} />
|
|
207
|
+
</Switch>
|
|
208
|
+
</div>
|
|
209
|
+
</Layout>
|
|
210
|
+
</JobsProvider>
|
|
209
211
|
);
|
|
210
212
|
};
|
|
211
213
|
|