@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.
Files changed (61) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/lib/app/app.js +124 -79
  3. package/lib/components/asset-info/asset-info.module.css +1 -0
  4. package/lib/components/bundle-assets/bundle-assets.js +97 -57
  5. package/lib/components/bundle-assets/bundle-assets.module.css +19 -13
  6. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.js +13 -3
  7. package/lib/components/bundle-modules/bundle-modules.js +49 -64
  8. package/lib/components/bundle-packages/bundle-packages.js +94 -46
  9. package/lib/components/bundle-packages/bundle-packages.module.css +14 -14
  10. package/lib/components/metrics-table/metrics-table.js +72 -59
  11. package/lib/components/metrics-table/metrics-table.module.css +18 -7
  12. package/lib/components/module-info/module-info.js +2 -2
  13. package/lib/hooks/search-params.js +25 -25
  14. package/lib/ui/empty-set/empty-set.js +5 -4
  15. package/lib/ui/empty-set/empty-set.module.css +2 -2
  16. package/lib/ui/hover-card/hover-card.js +6 -5
  17. package/lib/ui/hover-card/hover-card.module.css +6 -7
  18. package/lib/ui/table/table.js +5 -74
  19. package/lib/ui/table/table.module.css +23 -19
  20. package/lib/ui/table/table.stories.js +1 -1
  21. package/lib/ui/tooltip/tooltip.module.css +1 -0
  22. package/lib-esm/app/app.js +118 -76
  23. package/lib-esm/components/asset-info/asset-info.module.css +1 -0
  24. package/lib-esm/components/bundle-assets/bundle-assets.js +91 -61
  25. package/lib-esm/components/bundle-assets/bundle-assets.module.css +19 -13
  26. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js +6 -3
  27. package/lib-esm/components/bundle-modules/bundle-modules.js +31 -47
  28. package/lib-esm/components/bundle-packages/bundle-packages.js +83 -43
  29. package/lib-esm/components/bundle-packages/bundle-packages.module.css +14 -14
  30. package/lib-esm/components/metrics-table/metrics-table.js +61 -53
  31. package/lib-esm/components/metrics-table/metrics-table.module.css +18 -7
  32. package/lib-esm/components/module-info/module-info.js +2 -2
  33. package/lib-esm/hooks/search-params.js +21 -22
  34. package/lib-esm/ui/empty-set/empty-set.js +4 -4
  35. package/lib-esm/ui/empty-set/empty-set.module.css +2 -2
  36. package/lib-esm/ui/hover-card/hover-card.js +6 -5
  37. package/lib-esm/ui/hover-card/hover-card.module.css +6 -7
  38. package/lib-esm/ui/table/table.js +5 -65
  39. package/lib-esm/ui/table/table.module.css +23 -19
  40. package/lib-esm/ui/table/table.stories.js +1 -1
  41. package/lib-esm/ui/tooltip/tooltip.module.css +1 -0
  42. package/package.json +3 -3
  43. package/src/app/app.jsx +135 -133
  44. package/src/components/asset-info/asset-info.module.css +1 -0
  45. package/src/components/bundle-assets/bundle-assets.jsx +94 -59
  46. package/src/components/bundle-assets/bundle-assets.module.css +19 -13
  47. package/src/components/bundle-assets-totals-table/bundle-assets-totals-table.jsx +2 -0
  48. package/src/components/bundle-modules/bundle-modules.jsx +28 -38
  49. package/src/components/bundle-packages/bundle-packages.jsx +80 -43
  50. package/src/components/bundle-packages/bundle-packages.module.css +14 -14
  51. package/src/components/metrics-table/metrics-table.jsx +53 -44
  52. package/src/components/metrics-table/metrics-table.module.css +18 -7
  53. package/src/components/module-info/module-info.jsx +2 -2
  54. package/src/hooks/search-params.js +24 -22
  55. package/src/ui/empty-set/empty-set.jsx +25 -21
  56. package/src/ui/empty-set/empty-set.module.css +2 -2
  57. package/src/ui/hover-card/hover-card.jsx +5 -10
  58. package/src/ui/hover-card/hover-card.module.css +6 -7
  59. package/src/ui/table/table.jsx +5 -52
  60. package/src/ui/table/table.module.css +23 -19
  61. package/src/ui/tooltip/tooltip.module.css +1 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,42 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.2.9-beta.1](https://github.com/relative-ci/bundle-stats/compare/v3.2.9-beta.0...v3.2.9-beta.1) (2022-03-11)
7
+
8
+ **Note:** Version bump only for package @bundle-stats/ui
9
+
10
+
11
+
12
+
13
+
14
+ ## [3.2.9-beta.0](https://github.com/relative-ci/bundle-stats/compare/v3.2.8...v3.2.9-beta.0) (2022-03-11)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **ui:** App - replace box with table outline ([592e066](https://github.com/relative-ci/bundle-stats/commit/592e06603ddd3095cfb64786bbacd75863452ec6))
20
+ * **ui:** BundleAssets - inline asset name when long ([9000ca3](https://github.com/relative-ci/bundle-stats/commit/9000ca30ccd9ed268d5e0a588fd4dc7fa11fb9dd))
21
+ * **ui:** Consistent HoverCard usage ([a51c927](https://github.com/relative-ci/bundle-stats/commit/a51c9274067d50eaea235fc4220c9d64553901d3))
22
+ * **ui:** EmptySet - add spacing ([e784e10](https://github.com/relative-ci/bundle-stats/commit/e784e1098f56945d8c2a7ecdac192f441c80a973))
23
+ * **ui:** HoverCard - improve hover/active states ([75f881a](https://github.com/relative-ci/bundle-stats/commit/75f881a8251c40ea5852b44747493527310b7e32))
24
+ * **ui:** MetricsTable - baseline align value & delta ([aa8e440](https://github.com/relative-ci/bundle-stats/commit/aa8e440a90dd052ef5807d90b598a065931260e6))
25
+ * **ui:** MetricsTable - job name header nowrap ([06c6606](https://github.com/relative-ci/bundle-stats/commit/06c6606beea1c5c6bebe46c1d3bb6c9c14324def))
26
+ * **ui:** PackageHoverCard - fix layout ([6e1d362](https://github.com/relative-ci/bundle-stats/commit/6e1d362bcf97a11310b7cc1f2e8231b5207c1a3c))
27
+ * **ui:** Tooltip - workaround filter on safari ([ae9b4ca](https://github.com/relative-ci/bundle-stats/commit/ae9b4ca4ea5c6fd8c56b6f9f02d22fdb321ecad8))
28
+ * **ui:** useSearchParams - prevent triggering route change twice ([27b692c](https://github.com/relative-ci/bundle-stats/commit/27b692c5f3edf74a1692d9488b6a2d60c3210c99))
29
+
30
+
31
+ ### Performance Improvements
32
+
33
+ * **ui:** App - replace route render fns with components ([da4d9a8](https://github.com/relative-ci/bundle-stats/commit/da4d9a82e96db12f47838af0b3e68da26b4faf56))
34
+ * **ui:** MetricsTable - optimize row rendering ([02cfab0](https://github.com/relative-ci/bundle-stats/commit/02cfab0b2d3f12b6e4369d6994f4a63e05b65cff))
35
+ * **ui:** MetricsTable - row component ([0ffe212](https://github.com/relative-ci/bundle-stats/commit/0ffe212e46cc2805a77ed64b510e323bbf7232bc))
36
+ * **ui:** Table - remove custom child components ([856e02d](https://github.com/relative-ci/bundle-stats/commit/856e02d3ad97e54598bf96cf8a252fe53b6b2c3b))
37
+
38
+
39
+
40
+
41
+
6
42
  ## [3.2.8](https://github.com/relative-ci/bundle-stats/compare/v3.2.7...v3.2.8) (2022-03-10)
7
43
 
8
44
  **Note:** Version bump only for package @bundle-stats/ui
package/lib/app/app.js CHANGED
@@ -51,7 +51,8 @@ var _header = require("./header");
51
51
 
52
52
  var _appModule = _interopRequireDefault(require("./app.module.css"));
53
53
 
54
- var _excluded = ["jobs", "version"];
54
+ var _excluded = ["jobs", "version"],
55
+ _excluded2 = ["jobs"];
55
56
 
56
57
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
57
58
 
@@ -113,26 +114,130 @@ Layout.defaultProps = {
113
114
  version: null
114
115
  };
115
116
 
116
- var AppComponent = function AppComponent(_ref2) {
117
- var version = _ref2.version,
118
- jobs = _ref2.jobs;
117
+ var JobsContext = /*#__PURE__*/_react["default"].createContext({
118
+ jobs: []
119
+ });
120
+
121
+ var JobsProvider = function JobsProvider(_ref2) {
122
+ var jobs = _ref2.jobs,
123
+ restProps = _objectWithoutProperties(_ref2, _excluded2);
124
+
125
+ var value = (0, _react.useMemo)(function () {
126
+ return {
127
+ jobs: jobs
128
+ };
129
+ }, [jobs]);
130
+ return /*#__PURE__*/_react["default"].createElement(JobsContext.Provider, _extends({
131
+ value: value
132
+ }, restProps));
133
+ };
134
+
135
+ JobsProvider.propTypes = {
136
+ jobs: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired
137
+ };
138
+
139
+ var OverviewContent = function OverviewContent() {
140
+ var _useContext = (0, _react.useContext)(JobsContext),
141
+ jobs = _useContext.jobs;
142
+
143
+ var duplicatePackagesCount = jobs[0].summary.webpack.duplicatePackagesCount;
144
+ var duplicatePackagesInsights = Boolean(duplicatePackagesCount.current || duplicatePackagesCount.baseline);
145
+ return /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
146
+ space: "medium"
147
+ }, duplicatePackagesInsights && /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement(_duplicatePackagesWarning.DuplicatePackagesWarning, {
148
+ duplicatePackagesCount: duplicatePackagesCount,
149
+ showDelta: jobs.length > 1
150
+ })), /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
151
+ space: "small"
152
+ }, /*#__PURE__*/_react["default"].createElement(_totalSizeTypeTitle.TotalSizeTypeTitle, null), /*#__PURE__*/_react["default"].createElement(_bundleAssetsTotalsChartBars.BundleAssetsTotalsChartBars, {
153
+ jobs: jobs
154
+ }), /*#__PURE__*/_react["default"].createElement(_bundleAssetsTotalsTable.BundleAssetsTotalsTable, {
155
+ jobs: jobs,
156
+ outline: true
157
+ }))));
158
+ };
159
+
160
+ var AssetsContent = function AssetsContent() {
161
+ var _jobs$;
119
162
 
120
163
  var _useComponentQuerySta = (0, _queryState.useComponentQueryState)(_utils.COMPONENT.BUNDLE_ASSETS),
121
164
  _useComponentQuerySta2 = _slicedToArray(_useComponentQuerySta, 2),
122
165
  bundleStatsState = _useComponentQuerySta2[0],
123
166
  bundleStatsSetState = _useComponentQuerySta2[1];
124
167
 
125
- var _useComponentQuerySta3 = (0, _queryState.useComponentQueryState)(_utils.COMPONENT.BUNDLE_PACKAGES),
168
+ var _useContext2 = (0, _react.useContext)(JobsContext),
169
+ jobs = _useContext2.jobs;
170
+
171
+ return /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
172
+ space: "medium"
173
+ }, /*#__PURE__*/_react["default"].createElement(_summary.Summary, {
174
+ keys: _constants.METRICS_WEBPACK_ASSETS,
175
+ data: jobs === null || jobs === void 0 ? void 0 : (_jobs$ = jobs[0]) === null || _jobs$ === void 0 ? void 0 : _jobs$.summary,
176
+ showSummaryItemDelta: (jobs === null || jobs === void 0 ? void 0 : jobs.length) !== 1
177
+ }), /*#__PURE__*/_react["default"].createElement(_box.Box, {
178
+ outline: true
179
+ }, /*#__PURE__*/_react["default"].createElement(_bundleAssets.BundleAssets, _extends({
180
+ jobs: jobs,
181
+ setState: bundleStatsSetState
182
+ }, bundleStatsState)))));
183
+ };
184
+
185
+ var ModulesContent = function ModulesContent() {
186
+ var _jobs$2;
187
+
188
+ var _useComponentQuerySta3 = (0, _queryState.useComponentQueryState)(_utils.COMPONENT.BUNDLE_MODULES),
126
189
  _useComponentQuerySta4 = _slicedToArray(_useComponentQuerySta3, 2),
127
- bundlePackagesState = _useComponentQuerySta4[0],
128
- bundlePackagesSetState = _useComponentQuerySta4[1];
190
+ bundleModulesState = _useComponentQuerySta4[0],
191
+ bundleModulesSetState = _useComponentQuerySta4[1];
192
+
193
+ var _useContext3 = (0, _react.useContext)(JobsContext),
194
+ jobs = _useContext3.jobs;
129
195
 
130
- var _useComponentQuerySta5 = (0, _queryState.useComponentQueryState)(_utils.COMPONENT.BUNDLE_MODULES),
196
+ return /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
197
+ space: "medium"
198
+ }, /*#__PURE__*/_react["default"].createElement(_summary.Summary, {
199
+ keys: _constants.METRICS_WEBPACK_MODULES,
200
+ data: jobs === null || jobs === void 0 ? void 0 : (_jobs$2 = jobs[0]) === null || _jobs$2 === void 0 ? void 0 : _jobs$2.summary,
201
+ showSummaryItemDelta: (jobs === null || jobs === void 0 ? void 0 : jobs.length) !== 1
202
+ }), /*#__PURE__*/_react["default"].createElement(_box.Box, {
203
+ outline: true
204
+ }, /*#__PURE__*/_react["default"].createElement(_bundleModules.BundleModules, _extends({
205
+ jobs: jobs,
206
+ setState: bundleModulesSetState
207
+ }, bundleModulesState)))));
208
+ };
209
+
210
+ var PackagesContent = function PackagesContent() {
211
+ var _jobs$3;
212
+
213
+ var _useComponentQuerySta5 = (0, _queryState.useComponentQueryState)(_utils.COMPONENT.BUNDLE_PACKAGES),
131
214
  _useComponentQuerySta6 = _slicedToArray(_useComponentQuerySta5, 2),
132
- bundleModulesState = _useComponentQuerySta6[0],
133
- bundleModulesSetState = _useComponentQuerySta6[1];
215
+ bundlePackagesState = _useComponentQuerySta6[0],
216
+ bundlePackagesSetState = _useComponentQuerySta6[1];
217
+
218
+ var _useContext4 = (0, _react.useContext)(JobsContext),
219
+ jobs = _useContext4.jobs;
134
220
 
135
- if (jobs.length === 0) {
221
+ return /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
222
+ space: "medium"
223
+ }, /*#__PURE__*/_react["default"].createElement(_summary.Summary, {
224
+ keys: _constants.METRICS_WEBPACK_PACKAGES,
225
+ data: jobs === null || jobs === void 0 ? void 0 : (_jobs$3 = jobs[0]) === null || _jobs$3 === void 0 ? void 0 : _jobs$3.summary,
226
+ showSummaryItemDelta: (jobs === null || jobs === void 0 ? void 0 : jobs.length) !== 1
227
+ }), /*#__PURE__*/_react["default"].createElement(_box.Box, {
228
+ outline: true
229
+ }, /*#__PURE__*/_react["default"].createElement(_bundlePackages.BundlePackages, _extends({
230
+ jobs: jobs
231
+ }, bundlePackagesState, {
232
+ setState: bundlePackagesSetState
233
+ })))));
234
+ };
235
+
236
+ var AppComponent = function AppComponent(_ref3) {
237
+ var version = _ref3.version,
238
+ jobs = _ref3.jobs;
239
+
240
+ if ((jobs === null || jobs === void 0 ? void 0 : jobs.length) === 0) {
136
241
  return /*#__PURE__*/_react["default"].createElement(Layout, {
137
242
  version: version
138
243
  }, /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement("div", {
@@ -140,9 +245,9 @@ var AppComponent = function AppComponent(_ref2) {
140
245
  }, _i18n["default"].NO_DATA)));
141
246
  }
142
247
 
143
- var duplicatePackagesCount = jobs[0].summary.webpack.duplicatePackagesCount;
144
- var duplicatePackagesInsights = Boolean(duplicatePackagesCount.current || duplicatePackagesCount.baseline);
145
- return /*#__PURE__*/_react["default"].createElement(Layout, {
248
+ return /*#__PURE__*/_react["default"].createElement(JobsProvider, {
249
+ jobs: jobs
250
+ }, /*#__PURE__*/_react["default"].createElement(Layout, {
146
251
  jobs: jobs,
147
252
  version: version
148
253
  }, /*#__PURE__*/_react["default"].createElement(_container.Container, {
@@ -177,80 +282,20 @@ var AppComponent = function AppComponent(_ref2) {
177
282
  }, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Switch, null, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, {
178
283
  exact: true,
179
284
  path: _constants.URLS.ASSETS,
180
- render: function render(_ref3) {
181
- var location = _ref3.location;
182
- return /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
183
- space: "medium"
184
- }, /*#__PURE__*/_react["default"].createElement(_summary.Summary, {
185
- keys: _constants.METRICS_WEBPACK_ASSETS,
186
- data: jobs[0].summary,
187
- showSummaryItemDelta: jobs.length !== 1
188
- }), /*#__PURE__*/_react["default"].createElement(_box.Box, {
189
- outline: true
190
- }, /*#__PURE__*/_react["default"].createElement(_bundleAssets.BundleAssets, _extends({
191
- jobs: jobs,
192
- setState: bundleStatsSetState
193
- }, bundleStatsState, {
194
- key: "".concat(location.pathname, "_").concat(location.search)
195
- })))));
196
- }
285
+ component: AssetsContent
197
286
  }), /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, {
198
287
  exact: true,
199
288
  path: _constants.URLS.MODULES,
200
- render: function render() {
201
- return /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
202
- space: "medium"
203
- }, /*#__PURE__*/_react["default"].createElement(_summary.Summary, {
204
- keys: _constants.METRICS_WEBPACK_MODULES,
205
- data: jobs[0].summary,
206
- showSummaryItemDelta: jobs.length !== 1
207
- }), /*#__PURE__*/_react["default"].createElement(_box.Box, {
208
- outline: true
209
- }, /*#__PURE__*/_react["default"].createElement(_bundleModules.BundleModules, _extends({
210
- jobs: jobs,
211
- setState: bundleModulesSetState
212
- }, bundleModulesState)))));
213
- }
289
+ component: ModulesContent
214
290
  }), /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, {
215
291
  exact: true,
216
292
  path: _constants.URLS.PACKAGES,
217
- render: function render(_ref4) {
218
- var location = _ref4.location;
219
- return /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
220
- space: "medium"
221
- }, /*#__PURE__*/_react["default"].createElement(_summary.Summary, {
222
- keys: _constants.METRICS_WEBPACK_PACKAGES,
223
- data: jobs[0].summary,
224
- showSummaryItemDelta: jobs.length !== 1
225
- }), /*#__PURE__*/_react["default"].createElement(_box.Box, {
226
- outline: true
227
- }, /*#__PURE__*/_react["default"].createElement(_bundlePackages.BundlePackages, _extends({
228
- jobs: jobs
229
- }, bundlePackagesState, {
230
- setState: bundlePackagesSetState,
231
- key: "".concat(location.pathname, "_").concat(location.search)
232
- })))));
233
- }
293
+ component: PackagesContent
234
294
  }), /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, {
235
295
  exact: true,
236
296
  path: _constants.URLS.OVERVIEW,
237
- render: function render() {
238
- return /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
239
- space: "medium"
240
- }, duplicatePackagesInsights && /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement(_duplicatePackagesWarning.DuplicatePackagesWarning, {
241
- duplicatePackagesCount: duplicatePackagesCount,
242
- showDelta: jobs.length > 1
243
- })), /*#__PURE__*/_react["default"].createElement(_container.Container, null, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
244
- space: "small"
245
- }, /*#__PURE__*/_react["default"].createElement(_totalSizeTypeTitle.TotalSizeTypeTitle, null), /*#__PURE__*/_react["default"].createElement(_bundleAssetsTotalsChartBars.BundleAssetsTotalsChartBars, {
246
- jobs: jobs
247
- }), /*#__PURE__*/_react["default"].createElement(_box.Box, {
248
- outline: true
249
- }, /*#__PURE__*/_react["default"].createElement(_bundleAssetsTotalsTable.BundleAssetsTotalsTable, {
250
- jobs: jobs
251
- })))));
252
- }
253
- }))));
297
+ component: OverviewContent
298
+ })))));
254
299
  };
255
300
 
256
301
  AppComponent.defaultProps = {
@@ -1,4 +1,5 @@
1
1
  .fileName {
2
+ max-width: 100%;
2
3
  padding: 2px;
3
4
  background: var(--color-highlight-warning);
4
5
  }
@@ -128,61 +128,99 @@ TooltipNotPredictive.propTypes = {
128
128
 
129
129
  };
130
130
 
131
- var getRenderRowHeader = function getRenderRowHeader(_ref6) {
132
- var labels = _ref6.labels,
133
- CustomComponentLink = _ref6.CustomComponentLink,
134
- chunks = _ref6.chunks;
135
- return function (item) {
136
- var label = item.label,
137
- isNotPredictive = item.isNotPredictive,
138
- runs = item.runs,
139
- isChunk = item.isChunk,
140
- isEntry = item.isEntry,
141
- isInitial = item.isInitial;
142
- return /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
143
- label: /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
144
- space: "xxxsmall",
145
- className: _bundleAssetsModule["default"].assetName
146
- }, /*#__PURE__*/_react["default"].createElement("div", {
147
- className: _bundleAssetsModule["default"].assetInfoFlags
148
- }, isNotPredictive && /*#__PURE__*/_react["default"].createElement(_tooltip.Tooltip, {
149
- className: _bundleAssetsModule["default"].notPredictive,
150
- title: /*#__PURE__*/_react["default"].createElement(TooltipNotPredictive, {
151
- runs: runs
152
- })
153
- }, /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
154
- className: _bundleAssetsModule["default"].notPredictiveIcon,
155
- glyph: "warning"
156
- })), isChunk && /*#__PURE__*/_react["default"].createElement(_tag.Tag, {
157
- title: "Chunk",
158
- size: _tag.Tag.SIZES.SMALL,
159
- kind: _tag.Tag.KINDS.INFO,
160
- className: (0, _classnames["default"])(_bundleAssetsModule["default"].tag, _bundleAssetsModule["default"].tagChunk)
161
- }), isEntry && /*#__PURE__*/_react["default"].createElement(_tag.Tag, {
162
- title: "Entrypoint",
163
- size: _tag.Tag.SIZES.SMALL,
164
- kind: _tag.Tag.KINDS.INFO,
165
- className: (0, _classnames["default"])(_bundleAssetsModule["default"].tag, _bundleAssetsModule["default"].tagEntry)
166
- }), isInitial && /*#__PURE__*/_react["default"].createElement(_tag.Tag, {
167
- title: "Initial",
168
- size: _tag.Tag.SIZES.SMALL,
169
- kind: _tag.Tag.KINDS.INFO,
170
- className: (0, _classnames["default"])(_bundleAssetsModule["default"].tag, _bundleAssetsModule["default"].tagInitial)
171
- })), /*#__PURE__*/_react["default"].createElement(_fileName.FileName, {
172
- name: label
173
- }))
174
- }, /*#__PURE__*/_react["default"].createElement(_assetInfo.AssetInfo, {
175
- className: _bundleAssetsModule["default"].assetInfo,
176
- item: item,
177
- labels: labels,
178
- chunks: chunks,
179
- CustomComponentLink: CustomComponentLink
131
+ var RowHeader = function RowHeader(_ref6) {
132
+ var row = _ref6.row,
133
+ labels = _ref6.labels,
134
+ chunks = _ref6.chunks,
135
+ CustomComponentLink = _ref6.CustomComponentLink;
136
+ var label = row.label,
137
+ isNotPredictive = row.isNotPredictive,
138
+ runs = row.runs,
139
+ isChunk = row.isChunk,
140
+ isEntry = row.isEntry,
141
+ isInitial = row.isInitial;
142
+
143
+ var _useState = (0, _react.useState)(false),
144
+ _useState2 = _slicedToArray(_useState, 2),
145
+ showHoverCard = _useState2[0],
146
+ setHoverCard = _useState2[1];
147
+
148
+ var handleOnMouseEnter = (0, _react.useCallback)(function () {
149
+ return setHoverCard(true);
150
+ }, [showHoverCard]);
151
+ var content = (0, _react.useMemo)(function () {
152
+ return /*#__PURE__*/_react["default"].createElement("span", {
153
+ className: _bundleAssetsModule["default"].assetName
154
+ }, /*#__PURE__*/_react["default"].createElement("span", {
155
+ className: _bundleAssetsModule["default"].assetNameTags
156
+ }, isNotPredictive && /*#__PURE__*/_react["default"].createElement(_tooltip.Tooltip, {
157
+ className: _bundleAssetsModule["default"].notPredictive,
158
+ title: /*#__PURE__*/_react["default"].createElement(TooltipNotPredictive, {
159
+ runs: runs
160
+ })
161
+ }, /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
162
+ className: _bundleAssetsModule["default"].notPredictiveIcon,
163
+ glyph: "warning"
164
+ })), isChunk && /*#__PURE__*/_react["default"].createElement(_tag.Tag, {
165
+ className: (0, _classnames["default"])(_bundleAssetsModule["default"].assetNameTag, _bundleAssetsModule["default"].assetNameTagChunk),
166
+ title: "Chunk",
167
+ size: _tag.Tag.SIZES.SMALL,
168
+ kind: _tag.Tag.KINDS.INFO
169
+ }), isEntry && /*#__PURE__*/_react["default"].createElement(_tag.Tag, {
170
+ className: (0, _classnames["default"])(_bundleAssetsModule["default"].assetNameTag, _bundleAssetsModule["default"].assetNameTagEntry),
171
+ title: "Entrypoint",
172
+ size: _tag.Tag.SIZES.SMALL,
173
+ kind: _tag.Tag.KINDS.INFO
174
+ }), isInitial && /*#__PURE__*/_react["default"].createElement(_tag.Tag, {
175
+ className: (0, _classnames["default"])(_bundleAssetsModule["default"].assetNameTag, _bundleAssetsModule["default"].assetNameTagInitial),
176
+ title: "Initial",
177
+ size: _tag.Tag.SIZES.SMALL,
178
+ kind: _tag.Tag.KINDS.INFO
179
+ })), /*#__PURE__*/_react["default"].createElement(_fileName.FileName, {
180
+ className: _bundleAssetsModule["default"].assetNameText,
181
+ name: label
180
182
  }));
181
- };
183
+ }, [isChunk, isEntry, isInitial, isNotPredictive, runs]);
184
+
185
+ if (!showHoverCard) {
186
+ return /*#__PURE__*/_react["default"].createElement("span", {
187
+ onMouseEnter: handleOnMouseEnter
188
+ }, content);
189
+ }
190
+
191
+ return /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
192
+ label: content
193
+ }, /*#__PURE__*/_react["default"].createElement(_assetInfo.AssetInfo, {
194
+ className: _bundleAssetsModule["default"].assetInfo,
195
+ item: row,
196
+ labels: labels,
197
+ chunks: chunks,
198
+ CustomComponentLink: CustomComponentLink
199
+ }));
200
+ };
201
+
202
+ RowHeader.propTypes = {
203
+ row: _propTypes["default"].shape({
204
+ label: _propTypes["default"].string,
205
+ isNotPredictive: _propTypes["default"].bool,
206
+ isChunk: _propTypes["default"].bool,
207
+ isInitial: _propTypes["default"].bool,
208
+ isEntry: _propTypes["default"].bool,
209
+ runs: _propTypes["default"].arrayOf(_propTypes["default"].object)
210
+ }).isRequired,
211
+ chunks: _propTypes["default"].arrayOf(_propTypes["default"].shape({
212
+ id: _propTypes["default"].string,
213
+ name: _propTypes["default"].string
214
+ })),
215
+ labels: _propTypes["default"].arrayOf(_propTypes["default"].string).isRequired,
216
+ CustomComponentLink: _propTypes["default"].elementType.isRequired
217
+ };
218
+ RowHeader.defaultProps = {
219
+ chunks: []
182
220
  };
183
221
 
184
222
  var BundleAssets = function BundleAssets(props) {
185
- var _jobs$, _jobs$$meta, _jobs$$meta$webpack, _ASSET_ENTRY_TYPE, _ref8;
223
+ var _ASSET_ENTRY_TYPE, _ref8;
186
224
 
187
225
  var className = props.className,
188
226
  jobs = props.jobs,
@@ -207,14 +245,16 @@ var BundleAssets = function BundleAssets(props) {
207
245
  handleViewAll: resetAllFilters
208
246
  });
209
247
 
210
- var chunks = ((_jobs$ = jobs[0]) === null || _jobs$ === void 0 ? void 0 : (_jobs$$meta = _jobs$.meta) === null || _jobs$$meta === void 0 ? void 0 : (_jobs$$meta$webpack = _jobs$$meta.webpack) === null || _jobs$$meta$webpack === void 0 ? void 0 : _jobs$$meta$webpack.chunks) || [];
211
- var renderRowHeader = (0, _react.useMemo)(function () {
212
- return getRenderRowHeader({
248
+ var renderRowHeader = (0, _react.useCallback)(function (row) {
249
+ var _jobs$, _jobs$$meta, _jobs$$meta$webpack;
250
+
251
+ return /*#__PURE__*/_react["default"].createElement(RowHeader, {
252
+ row: row,
213
253
  labels: (0, _map2["default"])(jobs, 'label'),
214
- CustomComponentLink: CustomComponentLink,
215
- chunks: chunks
254
+ chunks: ((_jobs$ = jobs[0]) === null || _jobs$ === void 0 ? void 0 : (_jobs$$meta = _jobs$.meta) === null || _jobs$$meta === void 0 ? void 0 : (_jobs$$meta$webpack = _jobs$$meta.webpack) === null || _jobs$$meta$webpack === void 0 ? void 0 : _jobs$$meta$webpack.chunks) || [],
255
+ CustomComponentLink: CustomComponentLink
216
256
  });
217
- }, [jobs, chunks]);
257
+ }, [jobs, CustomComponentLink]);
218
258
  return /*#__PURE__*/_react["default"].createElement("section", {
219
259
  className: (0, _classnames["default"])(_bundleAssetsModule["default"].root, className)
220
260
  }, /*#__PURE__*/_react["default"].createElement(_toolbar.Toolbar, {
@@ -8,10 +8,7 @@
8
8
  margin-right: -1px; /** collapse border */
9
9
  }
10
10
 
11
- .assetName {
12
- display: inline-flex;
13
- align-items: center;
14
- }
11
+ .assetName {}
15
12
 
16
13
  .notPredictive {
17
14
  margin-right: var(--space-xxsmall);
@@ -26,39 +23,48 @@
26
23
  vertical-align: top;
27
24
  }
28
25
 
29
- .assetInfoFlags {
30
- display: inline-block;
26
+ .assetNameTags {
27
+ display: inline;
31
28
  margin-right: var(--space-xxxsmall);
32
29
  }
33
30
 
34
- .assetInfoFlags:empty {
31
+ .assetNameTags:empty {
35
32
  display: none;
36
33
  }
37
34
 
38
- .tag + .tag {
35
+ .assetNameTag {
36
+ vertical-align: middle;
37
+ }
38
+
39
+ .assetNameTag + .assetNameTag {
39
40
  margin-left: 2px;
40
41
  }
41
42
 
42
- .tagEntry {
43
+ .assetNameTagEntry {
43
44
  background: var(--color-info-light);
44
45
  }
45
46
 
46
- .tagEntry::before {
47
+ .assetNameTagEntry::before {
47
48
  content: 'e';
48
49
  }
49
50
 
50
- .tagInitial {
51
+ .assetNameTagInitial {
51
52
  background: var(--color-info-light);
52
53
  }
53
54
 
54
- .tagInitial::before {
55
+ .assetNameTagInitial::before {
55
56
  content: 'i';
56
57
  }
57
58
 
58
- .tagChunk::before {
59
+ .assetNameTagChunk::before {
59
60
  content: 'c';
60
61
  }
61
62
 
63
+ .assetNameText {
64
+ display: inline;
65
+ vertical-align: middle;
66
+ }
67
+
62
68
  /* Tooltip not predictive */
63
69
  .tooltipNotPredictive {
64
70
  text-align: left;
@@ -21,16 +21,26 @@ var _metricsTable = require("../metrics-table");
21
21
 
22
22
  var _componentLink = require("../component-link");
23
23
 
24
+ var _excluded = ["className", "jobs", "customComponentLink"];
25
+
24
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
27
 
26
28
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
29
 
28
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
29
31
 
32
+ 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); }
33
+
34
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
35
+
36
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
37
+
30
38
  var BundleAssetsTotalsTable = function BundleAssetsTotalsTable(_ref) {
31
39
  var className = _ref.className,
32
40
  jobs = _ref.jobs,
33
- CustomComponentLink = _ref.customComponentLink;
41
+ CustomComponentLink = _ref.customComponentLink,
42
+ restProps = _objectWithoutProperties(_ref, _excluded);
43
+
34
44
  var items = webpack.compareBySection.sizes(jobs);
35
45
 
36
46
  var renderRowHeader = function renderRowHeader(item) {
@@ -48,13 +58,13 @@ var BundleAssetsTotalsTable = function BundleAssetsTotalsTable(_ref) {
48
58
  }, item.label);
49
59
  };
50
60
 
51
- return /*#__PURE__*/_react["default"].createElement(_metricsTable.MetricsTable, {
61
+ return /*#__PURE__*/_react["default"].createElement(_metricsTable.MetricsTable, _extends({
52
62
  className: className,
53
63
  runs: jobs,
54
64
  items: items,
55
65
  renderRowHeader: renderRowHeader,
56
66
  showHeaderSum: true
57
- });
67
+ }, restProps));
58
68
  };
59
69
 
60
70
  exports.BundleAssetsTotalsTable = BundleAssetsTotalsTable;