@bundle-stats/ui 3.3.0-alpha.1 → 3.4.0-alpha.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 (178) hide show
  1. package/CHANGELOG.md +94 -13
  2. package/lib/app/app.js +137 -102
  3. package/lib/app/app.module.css +11 -4
  4. package/lib/app/header/header.js +1 -10
  5. package/lib/components/asset-info/asset-info.module.css +1 -0
  6. package/lib/components/bundle-assets/bundle-assets.js +104 -52
  7. package/lib/components/bundle-assets/bundle-assets.module.css +24 -26
  8. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.js +13 -3
  9. package/lib/components/bundle-modules/bundle-modules.js +53 -67
  10. package/lib/components/bundle-packages/bundle-packages.js +100 -44
  11. package/lib/components/bundle-packages/bundle-packages.module.css +17 -21
  12. package/lib/components/delta/delta.module.css +1 -0
  13. package/lib/components/job-header/job-header.js +3 -1
  14. package/lib/components/job-header/job-header.module.css +6 -8
  15. package/lib/components/jobs-header/jobs-header.module.css +5 -0
  16. package/lib/components/metrics-table/metrics-table.js +72 -59
  17. package/lib/components/metrics-table/metrics-table.module.css +18 -7
  18. package/lib/components/metrics-table-search/metrics-table-search.module.css +5 -4
  19. package/lib/components/metrics-table-title/metrics-table-title.js +9 -7
  20. package/lib/components/metrics-table-title/metrics-table-title.module.css +2 -0
  21. package/lib/components/module-info/module-info.js +2 -2
  22. package/lib/components/module-info/module-info.module.css +1 -0
  23. package/lib/components/summary/summary.js +1 -1
  24. package/lib/components/summary-item/summary-item.js +15 -18
  25. package/lib/components/summary-item/summary-item.module.css +1 -23
  26. package/lib/components/total-size-type-title/total-size-type-title.js +7 -3
  27. package/lib/css/default.css +14 -3
  28. package/lib/css/variables.css +17 -17
  29. package/lib/hooks/search-params.js +31 -31
  30. package/lib/layout/box/box.module.css +9 -0
  31. package/lib/layout/footer/footer.module.css +1 -1
  32. package/lib/layout/index.js +8 -0
  33. package/lib/layout/separator.js +48 -0
  34. package/lib/layout/separator.module.css +5 -0
  35. package/lib/ui/dropdown/dropdown.js +21 -26
  36. package/lib/ui/dropdown/dropdown.module.css +11 -12
  37. package/lib/ui/dropdown/dropdown.stories.js +2 -9
  38. package/lib/ui/empty-set/empty-set.js +5 -4
  39. package/lib/ui/empty-set/empty-set.module.css +2 -2
  40. package/lib/ui/filters/filters.container.js +1 -1
  41. package/lib/ui/filters/filters.js +22 -7
  42. package/lib/ui/filters/filters.module.css +3 -3
  43. package/lib/ui/horizontal-bar-chart/horizontal-bar-chart.js +1 -1
  44. package/lib/ui/hover-card/hover-card.js +102 -0
  45. package/lib/ui/hover-card/hover-card.module.css +29 -0
  46. package/lib/ui/hover-card/hover-card.stories.js +56 -0
  47. package/lib/ui/hover-card/index.js +18 -0
  48. package/lib/ui/icon/icon.js +6 -6
  49. package/lib/ui/icon/icon.module.css +1 -0
  50. package/lib/ui/index.js +8 -8
  51. package/lib/ui/table/table.js +5 -74
  52. package/lib/ui/table/table.module.css +41 -25
  53. package/lib/ui/table/table.stories.js +1 -1
  54. package/lib/ui/{popover → tag}/index.js +4 -4
  55. package/lib/ui/tag/tag.js +72 -0
  56. package/lib/ui/tag/tag.module.css +55 -0
  57. package/lib/ui/tag/tag.stories.js +38 -0
  58. package/lib/ui/tooltip/tooltip.js +10 -9
  59. package/lib/ui/tooltip/tooltip.module.css +2 -1
  60. package/lib-esm/app/app.js +132 -102
  61. package/lib-esm/app/app.module.css +11 -4
  62. package/lib-esm/app/header/header.js +1 -9
  63. package/lib-esm/components/asset-info/asset-info.module.css +1 -0
  64. package/lib-esm/components/bundle-assets/bundle-assets.js +97 -56
  65. package/lib-esm/components/bundle-assets/bundle-assets.module.css +24 -26
  66. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js +7 -3
  67. package/lib-esm/components/bundle-modules/bundle-modules.js +35 -50
  68. package/lib-esm/components/bundle-packages/bundle-packages.js +88 -41
  69. package/lib-esm/components/bundle-packages/bundle-packages.module.css +17 -21
  70. package/lib-esm/components/delta/delta.module.css +1 -0
  71. package/lib-esm/components/job-header/job-header.js +2 -1
  72. package/lib-esm/components/job-header/job-header.module.css +6 -8
  73. package/lib-esm/components/jobs-header/jobs-header.module.css +5 -0
  74. package/lib-esm/components/metrics-table/metrics-table.js +61 -53
  75. package/lib-esm/components/metrics-table/metrics-table.module.css +18 -7
  76. package/lib-esm/components/metrics-table-search/metrics-table-search.module.css +5 -4
  77. package/lib-esm/components/metrics-table-title/metrics-table-title.js +8 -7
  78. package/lib-esm/components/metrics-table-title/metrics-table-title.module.css +2 -0
  79. package/lib-esm/components/module-info/module-info.js +2 -2
  80. package/lib-esm/components/module-info/module-info.module.css +1 -0
  81. package/lib-esm/components/summary/summary.js +1 -1
  82. package/lib-esm/components/summary-item/summary-item.js +14 -18
  83. package/lib-esm/components/summary-item/summary-item.module.css +1 -23
  84. package/lib-esm/components/total-size-type-title/total-size-type-title.js +6 -3
  85. package/lib-esm/css/default.css +14 -3
  86. package/lib-esm/css/variables.css +17 -17
  87. package/lib-esm/hooks/search-params.js +27 -28
  88. package/lib-esm/layout/box/box.module.css +9 -0
  89. package/lib-esm/layout/footer/footer.module.css +1 -1
  90. package/lib-esm/layout/index.js +1 -0
  91. package/lib-esm/layout/separator.js +28 -0
  92. package/lib-esm/layout/separator.module.css +5 -0
  93. package/lib-esm/ui/dropdown/dropdown.js +20 -25
  94. package/lib-esm/ui/dropdown/dropdown.module.css +11 -12
  95. package/lib-esm/ui/dropdown/dropdown.stories.js +2 -7
  96. package/lib-esm/ui/empty-set/empty-set.js +4 -4
  97. package/lib-esm/ui/empty-set/empty-set.module.css +2 -2
  98. package/lib-esm/ui/filters/filters.js +20 -5
  99. package/lib-esm/ui/filters/filters.module.css +3 -3
  100. package/lib-esm/ui/hover-card/hover-card.js +83 -0
  101. package/lib-esm/ui/hover-card/hover-card.module.css +29 -0
  102. package/lib-esm/ui/hover-card/hover-card.stories.js +35 -0
  103. package/lib-esm/ui/hover-card/index.js +1 -0
  104. package/lib-esm/ui/icon/icon.js +3 -3
  105. package/lib-esm/ui/icon/icon.module.css +1 -0
  106. package/lib-esm/ui/index.js +1 -1
  107. package/lib-esm/ui/table/table.js +5 -65
  108. package/lib-esm/ui/table/table.module.css +41 -25
  109. package/lib-esm/ui/table/table.stories.js +1 -1
  110. package/lib-esm/ui/tag/index.js +1 -0
  111. package/lib-esm/ui/tag/tag.js +45 -0
  112. package/lib-esm/ui/tag/tag.module.css +55 -0
  113. package/lib-esm/ui/tag/tag.stories.js +23 -0
  114. package/lib-esm/ui/tooltip/tooltip.js +10 -9
  115. package/lib-esm/ui/tooltip/tooltip.module.css +2 -1
  116. package/package.json +33 -31
  117. package/src/app/app.jsx +142 -145
  118. package/src/app/app.module.css +11 -4
  119. package/src/app/header/header.jsx +0 -10
  120. package/src/components/asset-info/asset-info.module.css +1 -0
  121. package/src/components/bundle-assets/bundle-assets.jsx +85 -31
  122. package/src/components/bundle-assets/bundle-assets.module.css +24 -26
  123. package/src/components/bundle-assets-totals-table/bundle-assets-totals-table.jsx +2 -0
  124. package/src/components/bundle-modules/bundle-modules.jsx +36 -36
  125. package/src/components/bundle-packages/bundle-packages.jsx +89 -39
  126. package/src/components/bundle-packages/bundle-packages.module.css +17 -21
  127. package/src/components/delta/delta.module.css +1 -0
  128. package/src/components/job-header/job-header.jsx +2 -1
  129. package/src/components/job-header/job-header.module.css +6 -8
  130. package/src/components/jobs-header/jobs-header.module.css +5 -0
  131. package/src/components/metrics-table/metrics-table.jsx +53 -44
  132. package/src/components/metrics-table/metrics-table.module.css +18 -7
  133. package/src/components/metrics-table-search/metrics-table-search.module.css +5 -4
  134. package/src/components/metrics-table-title/metrics-table-title.jsx +20 -21
  135. package/src/components/metrics-table-title/metrics-table-title.module.css +2 -0
  136. package/src/components/module-info/module-info.jsx +3 -7
  137. package/src/components/module-info/module-info.module.css +1 -0
  138. package/src/components/summary/summary.jsx +1 -1
  139. package/src/components/summary-item/summary-item.jsx +21 -27
  140. package/src/components/summary-item/summary-item.module.css +1 -23
  141. package/src/components/total-size-type-title/total-size-type-title.jsx +6 -9
  142. package/src/css/default.css +14 -3
  143. package/src/css/variables.css +17 -17
  144. package/src/hooks/search-params.js +42 -33
  145. package/src/layout/box/box.module.css +9 -0
  146. package/src/layout/footer/footer.module.css +1 -1
  147. package/src/layout/index.js +1 -0
  148. package/src/layout/separator.jsx +25 -0
  149. package/src/layout/separator.module.css +5 -0
  150. package/src/ui/dropdown/dropdown.jsx +16 -22
  151. package/src/ui/dropdown/dropdown.module.css +11 -12
  152. package/src/ui/empty-set/empty-set.jsx +25 -21
  153. package/src/ui/empty-set/empty-set.module.css +2 -2
  154. package/src/ui/filters/filters.jsx +64 -53
  155. package/src/ui/filters/filters.module.css +3 -3
  156. package/src/ui/hover-card/hover-card.jsx +73 -0
  157. package/src/ui/hover-card/hover-card.module.css +29 -0
  158. package/src/ui/hover-card/index.js +1 -0
  159. package/src/ui/icon/icon.jsx +11 -7
  160. package/src/ui/icon/icon.module.css +1 -0
  161. package/src/ui/index.js +1 -1
  162. package/src/ui/table/table.jsx +5 -52
  163. package/src/ui/table/table.module.css +41 -25
  164. package/src/ui/tag/index.js +1 -0
  165. package/src/ui/tag/tag.jsx +49 -0
  166. package/src/ui/tag/tag.module.css +55 -0
  167. package/src/ui/tooltip/tooltip.jsx +10 -14
  168. package/src/ui/tooltip/tooltip.module.css +2 -1
  169. package/lib/ui/popover/popover.js +0 -92
  170. package/lib/ui/popover/popover.module.css +0 -66
  171. package/lib/ui/popover/popover.stories.js +0 -26
  172. package/lib-esm/ui/popover/index.js +0 -1
  173. package/lib-esm/ui/popover/popover.js +0 -71
  174. package/lib-esm/ui/popover/popover.module.css +0 -66
  175. package/lib-esm/ui/popover/popover.stories.js +0 -14
  176. package/src/ui/popover/index.js +0 -1
  177. package/src/ui/popover/popover.jsx +0 -79
  178. package/src/ui/popover/popover.module.css +0 -66
@@ -29,10 +29,12 @@ var _icon = require("../../ui/icon");
29
29
 
30
30
  var _fileName = require("../../ui/file-name");
31
31
 
32
- var _popover = require("../../ui/popover");
32
+ var _hoverCard = require("../../ui/hover-card");
33
33
 
34
34
  var _tooltip = require("../../ui/tooltip");
35
35
 
36
+ var _tag = require("../../ui/tag");
37
+
36
38
  var _filters = require("../../ui/filters");
37
39
 
38
40
  var _sortDropdown = require("../../ui/sort-dropdown");
@@ -126,53 +128,99 @@ TooltipNotPredictive.propTypes = {
126
128
 
127
129
  };
128
130
 
129
- var getRenderRowHeader = function getRenderRowHeader(_ref6) {
130
- var labels = _ref6.labels,
131
- CustomComponentLink = _ref6.CustomComponentLink,
132
- chunks = _ref6.chunks;
133
- return function (item) {
134
- var label = item.label,
135
- isNotPredictive = item.isNotPredictive,
136
- runs = item.runs,
137
- isChunk = item.isChunk,
138
- isEntry = item.isEntry,
139
- isInitial = item.isInitial;
140
- return /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
141
- label: /*#__PURE__*/_react["default"].createElement(_fileName.FileName, {
142
- name: label
143
- }),
144
- icon: /*#__PURE__*/_react["default"].createElement("div", {
145
- className: _bundleAssetsModule["default"].assetInfoFlags
146
- }, isNotPredictive && /*#__PURE__*/_react["default"].createElement(_tooltip.Tooltip, {
147
- className: _bundleAssetsModule["default"].notPredictive,
148
- title: /*#__PURE__*/_react["default"].createElement(TooltipNotPredictive, {
149
- runs: runs
150
- })
151
- }, /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
152
- className: _bundleAssetsModule["default"].notPredictiveIcon,
153
- glyph: "warning"
154
- })), isChunk && /*#__PURE__*/_react["default"].createElement("span", {
155
- title: "Chunk",
156
- className: _bundleAssetsModule["default"].flagChunk
157
- }, "c"), isEntry && /*#__PURE__*/_react["default"].createElement("span", {
158
- title: "Entrypoint",
159
- className: _bundleAssetsModule["default"].flagEntry
160
- }, "e"), isInitial && /*#__PURE__*/_react["default"].createElement("span", {
161
- title: "Initial",
162
- className: _bundleAssetsModule["default"].flagInitial
163
- }, "i"))
164
- }, /*#__PURE__*/_react["default"].createElement(_assetInfo.AssetInfo, {
165
- className: _bundleAssetsModule["default"].assetInfo,
166
- item: item,
167
- labels: labels,
168
- chunks: chunks,
169
- 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
170
182
  }));
171
- };
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: []
172
220
  };
173
221
 
174
222
  var BundleAssets = function BundleAssets(props) {
175
- var _jobs$, _jobs$$meta, _jobs$$meta$webpack, _ASSET_ENTRY_TYPE, _ref8;
223
+ var _ASSET_ENTRY_TYPE, _ref8;
176
224
 
177
225
  var className = props.className,
178
226
  jobs = props.jobs,
@@ -197,14 +245,16 @@ var BundleAssets = function BundleAssets(props) {
197
245
  handleViewAll: resetAllFilters
198
246
  });
199
247
 
200
- 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) || [];
201
- var renderRowHeader = (0, _react.useMemo)(function () {
202
- 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,
203
253
  labels: (0, _map2["default"])(jobs, 'label'),
204
- CustomComponentLink: CustomComponentLink,
205
- 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
206
256
  });
207
- }, [jobs, chunks]);
257
+ }, [jobs, CustomComponentLink]);
208
258
  return /*#__PURE__*/_react["default"].createElement("section", {
209
259
  className: (0, _classnames["default"])(_bundleAssetsModule["default"].root, className)
210
260
  }, /*#__PURE__*/_react["default"].createElement(_toolbar.Toolbar, {
@@ -212,7 +262,7 @@ var BundleAssets = function BundleAssets(props) {
212
262
  renderActions: function renderActions(_ref7) {
213
263
  var actionClassName = _ref7.actionClassName;
214
264
  return /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
215
- space: "xsmall",
265
+ space: "xxsmall",
216
266
  className: (0, _classnames["default"])(_bundleAssetsModule["default"].dropdown, actionClassName)
217
267
  }, /*#__PURE__*/_react["default"].createElement(_sortDropdown.SortDropdown, _extends({
218
268
  fields: sortFields
@@ -223,7 +273,9 @@ var BundleAssets = function BundleAssets(props) {
223
273
  handleResetFilters: resetFilters
224
274
  }));
225
275
  }
226
- }, /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, null, /*#__PURE__*/_react["default"].createElement(_metricsTableSearch.MetricsTableSearch, {
276
+ }, /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
277
+ space: "xxsmall"
278
+ }, /*#__PURE__*/_react["default"].createElement(_metricsTableSearch.MetricsTableSearch, {
227
279
  className: _bundleAssetsModule["default"].toolbarSearch,
228
280
  placeholder: "Search by name",
229
281
  search: search,
@@ -8,6 +8,8 @@
8
8
  margin-right: -1px; /** collapse border */
9
9
  }
10
10
 
11
+ .assetName {}
12
+
11
13
  .notPredictive {
12
14
  margin-right: var(--space-xxsmall);
13
15
  display: inline-block;
@@ -21,50 +23,46 @@
21
23
  vertical-align: top;
22
24
  }
23
25
 
24
- .assetInfoFlags {
25
- display: inline-block;
26
+ .assetNameTags {
27
+ display: inline;
26
28
  margin-right: var(--space-xxxsmall);
27
29
  }
28
30
 
29
- .assetInfoFlags:empty {
31
+ .assetNameTags:empty {
30
32
  display: none;
31
33
  }
32
34
 
33
- .flag {
34
- display: inline-block;
35
- width: var(--space-xsmall);
36
- height: var(--space-xsmall);
37
- font-family: var(--font-family);
38
- font-size: 8px;
39
- font-weight: bold;
40
- background: var(--color-highlight);
41
- color: var(--color-text-light);
42
- line-height: var(--space-xsmall);
43
- text-align: center;
44
- text-transform: uppercase;
35
+ .assetNameTag {
45
36
  vertical-align: middle;
46
37
  }
47
38
 
48
- .flag + .flag {
39
+ .assetNameTag + .assetNameTag {
49
40
  margin-left: 2px;
50
41
  }
51
42
 
52
- .flagEntry {
53
- composes: flag;
43
+ .assetNameTagEntry {
54
44
  background: var(--color-info-light);
55
- color: var(--color-background);
56
45
  }
57
46
 
58
- .flagInitial {
59
- composes: flag;
47
+ .assetNameTagEntry::before {
48
+ content: 'e';
49
+ }
50
+
51
+ .assetNameTagInitial {
60
52
  background: var(--color-info-light);
61
- color: var(--color-background);
62
53
  }
63
54
 
64
- .flagChunk {
65
- composes: flag;
66
- background: var(--color-info);
67
- color: var(--color-background);
55
+ .assetNameTagInitial::before {
56
+ content: 'i';
57
+ }
58
+
59
+ .assetNameTagChunk::before {
60
+ content: 'c';
61
+ }
62
+
63
+ .assetNameText {
64
+ display: inline;
65
+ vertical-align: middle;
68
66
  }
69
67
 
70
68
  /* Tooltip not predictive */
@@ -29,12 +29,16 @@ var _budgetInfo = require("../budget-info");
29
29
 
30
30
  var _bundleAssetsTotalsTableModule = _interopRequireDefault(require("./bundle-assets-totals-table.module.css"));
31
31
 
32
+ var _excluded = ["className", "jobs", "customComponentLink"];
33
+
32
34
  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); }
33
35
 
34
36
  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; }
35
37
 
36
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
37
39
 
40
+ 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); }
41
+
38
42
  function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
39
43
 
40
44
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -47,12 +51,18 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
47
51
 
48
52
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
49
53
 
54
+ 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; }
55
+
56
+ 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; }
57
+
50
58
  var BundleAssetsTotalsTable = function BundleAssetsTotalsTable(_ref) {
51
59
  var _jobs$0$insights, _jobs$0$insights$webp;
52
60
 
53
61
  var className = _ref.className,
54
62
  jobs = _ref.jobs,
55
- CustomComponentLink = _ref.customComponentLink;
63
+ CustomComponentLink = _ref.customComponentLink,
64
+ restProps = _objectWithoutProperties(_ref, _excluded);
65
+
56
66
  var items = (0, _react.useMemo)(function () {
57
67
  return webpack.compareBySection.sizes(jobs);
58
68
  }, [jobs]);
@@ -84,13 +94,13 @@ var BundleAssetsTotalsTable = function BundleAssetsTotalsTable(_ref) {
84
94
  budgetInsight: budget
85
95
  })));
86
96
  }, [CustomComponentLink]);
87
- return /*#__PURE__*/_react["default"].createElement(_metricsTable.MetricsTable, {
97
+ return /*#__PURE__*/_react["default"].createElement(_metricsTable.MetricsTable, _extends({
88
98
  className: className,
89
99
  runs: jobs,
90
100
  items: items,
91
101
  renderRowHeader: renderRowHeader,
92
102
  showHeaderSum: true
93
- });
103
+ }, restProps));
94
104
  };
95
105
 
96
106
  exports.BundleAssetsTotalsTable = BundleAssetsTotalsTable;
@@ -35,7 +35,7 @@ var _fileName = require("../../ui/file-name");
35
35
 
36
36
  var _filters = require("../../ui/filters");
37
37
 
38
- var _popover = require("../../ui/popover");
38
+ var _hoverCard = require("../../ui/hover-card");
39
39
 
40
40
  var _sortDropdown = require("../../ui/sort-dropdown");
41
41
 
@@ -88,33 +88,33 @@ var RowHeader = function RowHeader(_ref) {
88
88
 
89
89
  var _useState = (0, _react.useState)(false),
90
90
  _useState2 = _slicedToArray(_useState, 2),
91
- showPopopver = _useState2[0],
92
- setPopover = _useState2[1];
91
+ showHoverCard = _useState2[0],
92
+ setHoverCard = _useState2[1];
93
93
 
94
94
  var handleOnMouseEnter = (0, _react.useCallback)(function () {
95
- return setPopover(true);
96
- }, [showPopopver]);
95
+ return setHoverCard(true);
96
+ }, [showHoverCard]);
97
+ var content = (0, _react.useMemo)(function () {
98
+ return /*#__PURE__*/_react["default"].createElement(_fileName.FileName, {
99
+ name: row.label
100
+ });
101
+ }, [row.label]);
97
102
 
98
- var content = /*#__PURE__*/_react["default"].createElement(_fileName.FileName, {
99
- name: row.label
100
- });
103
+ if (!showHoverCard) {
104
+ return /*#__PURE__*/_react["default"].createElement("div", {
105
+ onMouseEnter: handleOnMouseEnter
106
+ }, content);
107
+ }
101
108
 
102
- return /*#__PURE__*/_react["default"].createElement("div", {
103
- onMouseEnter: handleOnMouseEnter
104
- }, !showPopopver ? content : /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
105
- ariaLabel: "View module info",
109
+ return /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
106
110
  label: content
107
- }, function (_ref2) {
108
- var popoverToggle = _ref2.popoverToggle;
109
- return /*#__PURE__*/_react["default"].createElement(_moduleInfo.ModuleInfo, {
110
- className: _bundleModulesModule["default"].namePopover,
111
- item: row,
112
- chunks: chunks,
113
- chunkIds: chunkIds,
114
- labels: labels,
115
- customComponentLink: CustomComponentLink,
116
- onClick: popoverToggle
117
- });
111
+ }, /*#__PURE__*/_react["default"].createElement(_moduleInfo.ModuleInfo, {
112
+ className: _bundleModulesModule["default"].namePopover,
113
+ item: row,
114
+ chunks: chunks,
115
+ chunkIds: chunkIds,
116
+ labels: labels,
117
+ customComponentLink: CustomComponentLink
118
118
  }));
119
119
  };
120
120
 
@@ -133,50 +133,34 @@ RowHeader.defaultProps = {
133
133
  chunks: []
134
134
  };
135
135
 
136
- var getRenderRowHeader = function getRenderRowHeader(_ref3) {
137
- var labels = _ref3.labels,
138
- chunks = _ref3.chunks,
139
- CustomComponentLink = _ref3.CustomComponentLink;
140
- return function (row) {
141
- return /*#__PURE__*/_react["default"].createElement(RowHeader, {
142
- row: row,
143
- chunks: chunks,
144
- labels: labels,
145
- CustomComponentLink: CustomComponentLink
146
- });
147
- };
148
- };
149
-
150
- var BundleModules = function BundleModules(_ref4) {
136
+ var BundleModules = function BundleModules(_ref2) {
151
137
  var _MODULE_SOURCE_TYPE, _objectSpread2;
152
138
 
153
- var className = _ref4.className,
154
- jobs = _ref4.jobs,
155
- items = _ref4.items,
156
- chunks = _ref4.chunks,
157
- totalRowCount = _ref4.totalRowCount,
158
- updateFilters = _ref4.updateFilters,
159
- resetFilters = _ref4.resetFilters,
160
- resetAllFilters = _ref4.resetAllFilters,
161
- filters = _ref4.filters,
162
- sortFields = _ref4.sortFields,
163
- sort = _ref4.sort,
164
- updateSort = _ref4.updateSort,
165
- search = _ref4.search,
166
- updateSearch = _ref4.updateSearch,
167
- hasActiveFilters = _ref4.hasActiveFilters,
168
- CustomComponentLink = _ref4.customComponentLink;
139
+ var className = _ref2.className,
140
+ jobs = _ref2.jobs,
141
+ items = _ref2.items,
142
+ chunks = _ref2.chunks,
143
+ totalRowCount = _ref2.totalRowCount,
144
+ updateFilters = _ref2.updateFilters,
145
+ resetFilters = _ref2.resetFilters,
146
+ resetAllFilters = _ref2.resetAllFilters,
147
+ filters = _ref2.filters,
148
+ sortFields = _ref2.sortFields,
149
+ sort = _ref2.sort,
150
+ updateSort = _ref2.updateSort,
151
+ search = _ref2.search,
152
+ updateSearch = _ref2.updateSearch,
153
+ hasActiveFilters = _ref2.hasActiveFilters,
154
+ CustomComponentLink = _ref2.customComponentLink;
169
155
  var rootClassName = (0, _classnames["default"])(_bundleModulesModule["default"].root, className);
170
- var labels = (0, _react.useMemo)(function () {
171
- return (0, _map2["default"])(jobs, 'label');
172
- }, [jobs]);
173
- var renderRowHeader = (0, _react.useMemo)(function () {
174
- return getRenderRowHeader({
175
- labels: labels,
156
+ var renderRowHeader = (0, _react.useCallback)(function (row) {
157
+ return /*#__PURE__*/_react["default"].createElement(RowHeader, {
158
+ row: row,
176
159
  chunks: chunks,
160
+ labels: (0, _map2["default"])(jobs, 'label'),
177
161
  CustomComponentLink: CustomComponentLink
178
162
  });
179
- }, [labels, chunks]);
163
+ }, [jobs, chunks, CustomComponentLink]);
180
164
 
181
165
  var emptyMessage = /*#__PURE__*/_react["default"].createElement(_emptySet.EmptySet, {
182
166
  resources: "modules",
@@ -199,9 +183,9 @@ var BundleModules = function BundleModules(_ref4) {
199
183
  defaultValue: (0, _get2["default"])(filters, "".concat(_utils.MODULE_SOURCE_TYPE, ".").concat(_utils.MODULE_FILTERS.THIRD_PARTY), true)
200
184
  }), _MODULE_SOURCE_TYPE)), _objectSpread2), !(0, _isEmpty2["default"])(chunks) && _defineProperty({}, _utils.MODULE_CHUNK, _objectSpread({
201
185
  label: 'Chunk'
202
- }, chunks.reduce(function (chunkFilters, _ref5) {
203
- var id = _ref5.id,
204
- name = _ref5.name;
186
+ }, chunks.reduce(function (chunkFilters, _ref3) {
187
+ var id = _ref3.id,
188
+ name = _ref3.name;
205
189
  return _objectSpread(_objectSpread({}, chunkFilters), {}, _defineProperty({}, id, {
206
190
  label: name,
207
191
  defaultValue: (0, _get2["default"])(filters, "".concat(_utils.MODULE_CHUNK, ".").concat(id), true)
@@ -219,8 +203,8 @@ var BundleModules = function BundleModules(_ref4) {
219
203
  className: rootClassName
220
204
  }, /*#__PURE__*/_react["default"].createElement(_toolbar.Toolbar, {
221
205
  className: _bundleModulesModule["default"].toolbar,
222
- renderActions: function renderActions(_ref7) {
223
- var actionClassName = _ref7.actionClassName;
206
+ renderActions: function renderActions(_ref5) {
207
+ var actionClassName = _ref5.actionClassName;
224
208
  return /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
225
209
  space: "xxsmall",
226
210
  className: (0, _classnames["default"])(_bundleModulesModule["default"].dropdown, actionClassName)
@@ -233,7 +217,9 @@ var BundleModules = function BundleModules(_ref4) {
233
217
  handleResetFilters: resetFilters
234
218
  }));
235
219
  }
236
- }, /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, null, /*#__PURE__*/_react["default"].createElement(_metricsTableSearch.MetricsTableSearch, {
220
+ }, /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
221
+ space: "xxsmall"
222
+ }, /*#__PURE__*/_react["default"].createElement(_metricsTableSearch.MetricsTableSearch, {
237
223
  className: _bundleModulesModule["default"].toolbarSearch,
238
224
  search: search,
239
225
  updateSearch: updateSearch,