@bundle-stats/ui 3.1.4-alpha.0 → 3.2.1-alpha.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 (276) hide show
  1. package/.babelrc.js +3 -3
  2. package/CHANGELOG.md +18 -1
  3. package/lib/app/app.js +2 -1
  4. package/lib/app/app.stories.js +2 -1
  5. package/lib/assets/icons/arrow.svg +1 -0
  6. package/lib/assets/icons/cancel.svg +1 -0
  7. package/lib/assets/icons/clock.svg +1 -0
  8. package/lib/assets/icons/close.svg +1 -0
  9. package/lib/assets/icons/commit.svg +1 -0
  10. package/lib/assets/icons/filter.svg +1 -0
  11. package/lib/assets/icons/help.svg +1 -0
  12. package/lib/assets/icons/menu.svg +1 -0
  13. package/lib/{ui/icon/assets → assets/icons}/sort.svg +0 -0
  14. package/lib/assets/icons/warning.svg +1 -0
  15. package/lib/assets/icons.svg +1 -0
  16. package/lib/components/bundle-assets/bundle-assets.constants.js +1 -1
  17. package/lib/components/bundle-assets/bundle-assets.js +3 -3
  18. package/lib/components/bundle-assets/bundle-assets.stories.js +19 -7
  19. package/lib/components/bundle-assets/bundle-assets.utils.js +95 -28
  20. package/lib/components/bundle-assets/index.js +115 -4
  21. package/lib/components/bundle-modules/bundle-modules.constants.js +1 -1
  22. package/lib/components/bundle-modules/bundle-modules.js +3 -3
  23. package/lib/components/bundle-modules/bundle-modules.utils.js +152 -0
  24. package/lib/components/bundle-modules/index.js +135 -4
  25. package/lib/components/bundle-packages/bundle-packages.constants.js +1 -1
  26. package/lib/components/bundle-packages/bundle-packages.js +27 -7
  27. package/lib/components/bundle-packages/bundle-packages.module.css +5 -0
  28. package/lib/components/bundle-packages/{bundle-packages.container.js → bundle-packages.utils.js} +8 -42
  29. package/lib/components/bundle-packages/index.js +111 -3
  30. package/lib/components/duplicate-packages-warning/duplicate-packages-warning.js +7 -4
  31. package/lib/components/duplicate-packages-warning/duplicate-packages-warning.stories.js +4 -3
  32. package/lib/components/index.js +18 -18
  33. package/lib/components/metrics-table/metrics-table.js +3 -7
  34. package/lib/components/metrics-table-search/metrics-table-search.js +2 -1
  35. package/lib/components/metrics-table-search/metrics-table-search.module.css +2 -1
  36. package/lib/constants.js +1 -1
  37. package/lib/hooks/rows-filter.js +28 -0
  38. package/lib/hooks/rows-sort.js +54 -0
  39. package/lib/{hocs/with-search.js → hooks/search-params.js} +15 -64
  40. package/lib/layout/index.js +8 -8
  41. package/lib/ui/icon/icon.js +4 -191
  42. package/lib/ui/logo/logo.constants.js +1 -1
  43. package/lib/ui/popover/popover.js +3 -1
  44. package/lib/ui/popover/popover.module.css +3 -3
  45. package/lib/ui/sort-dropdown/sort-dropdown.js +12 -13
  46. package/lib/ui/sort-dropdown/sort-dropdown.stories.js +2 -2
  47. package/lib/ui/tooltip/tooltip.js +2 -1
  48. package/lib-esm/app/app.js +89 -108
  49. package/lib-esm/app/app.stories.js +50 -70
  50. package/lib-esm/app/header/header.js +19 -20
  51. package/lib-esm/assets/icons/arrow.svg +1 -0
  52. package/lib-esm/assets/icons/cancel.svg +1 -0
  53. package/lib-esm/assets/icons/clock.svg +1 -0
  54. package/lib-esm/assets/icons/close.svg +1 -0
  55. package/lib-esm/assets/icons/commit.svg +1 -0
  56. package/lib-esm/assets/icons/filter.svg +1 -0
  57. package/lib-esm/assets/icons/help.svg +1 -0
  58. package/lib-esm/assets/icons/menu.svg +1 -0
  59. package/lib-esm/{ui/icon/assets → assets/icons}/sort.svg +0 -0
  60. package/lib-esm/assets/icons/warning.svg +1 -0
  61. package/lib-esm/assets/icons.svg +1 -0
  62. package/lib-esm/components/asset-info/asset-info.js +20 -18
  63. package/lib-esm/components/asset-info/asset-info.stories.js +29 -33
  64. package/lib-esm/components/browsertime-table/browsertime-table.js +6 -4
  65. package/lib-esm/components/browsertime-table/browsertime-table.stories.js +9 -13
  66. package/lib-esm/components/bundle-assets/bundle-assets.constants.js +17 -15
  67. package/lib-esm/components/bundle-assets/bundle-assets.js +148 -151
  68. package/lib-esm/components/bundle-assets/bundle-assets.stories.js +58 -63
  69. package/lib-esm/components/bundle-assets/bundle-assets.utils.js +65 -21
  70. package/lib-esm/components/bundle-assets/index.js +89 -2
  71. package/lib-esm/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.js +46 -51
  72. package/lib-esm/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.stories.js +9 -13
  73. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js +13 -13
  74. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.stories.js +13 -19
  75. package/lib-esm/components/bundle-modules/bundle-modules.constants.js +17 -15
  76. package/lib-esm/components/bundle-modules/bundle-modules.js +120 -133
  77. package/lib-esm/components/bundle-modules/bundle-modules.stories.js +46 -58
  78. package/lib-esm/components/bundle-modules/bundle-modules.utils.js +95 -0
  79. package/lib-esm/components/bundle-modules/index.js +111 -3
  80. package/lib-esm/components/bundle-packages/bundle-packages.constants.js +17 -15
  81. package/lib-esm/components/bundle-packages/bundle-packages.js +81 -77
  82. package/lib-esm/components/bundle-packages/bundle-packages.module.css +5 -0
  83. package/lib-esm/components/bundle-packages/bundle-packages.stories.js +34 -46
  84. package/lib-esm/components/bundle-packages/bundle-packages.utils.js +44 -0
  85. package/lib-esm/components/bundle-packages/index.js +87 -2
  86. package/lib-esm/components/component-link.js +9 -13
  87. package/lib-esm/components/delta/delta.js +7 -6
  88. package/lib-esm/components/delta/delta.stories.js +26 -38
  89. package/lib-esm/components/duplicate-packages-warning/duplicate-packages-warning.js +15 -10
  90. package/lib-esm/components/duplicate-packages-warning/duplicate-packages-warning.stories.js +20 -25
  91. package/lib-esm/components/job-header/job-header.js +14 -11
  92. package/lib-esm/components/job-header/job-header.stories.js +12 -18
  93. package/lib-esm/components/job-meta/job-meta.js +14 -18
  94. package/lib-esm/components/job-meta/job-meta.stories.js +10 -12
  95. package/lib-esm/components/job-name/job-name.js +11 -17
  96. package/lib-esm/components/job-name/job-name.stories.js +15 -23
  97. package/lib-esm/components/jobs-header/jobs-header.js +12 -12
  98. package/lib-esm/components/jobs-header/jobs-header.stories.js +80 -86
  99. package/lib-esm/components/lighthouse-table/lighthouse-table.js +6 -4
  100. package/lib-esm/components/lighthouse-table/lighthouse-table.stories.js +10 -14
  101. package/lib-esm/components/metric/metric.js +14 -19
  102. package/lib-esm/components/metric/metric.stories.js +36 -58
  103. package/lib-esm/components/metrics-table/metrics-table.js +128 -143
  104. package/lib-esm/components/metrics-table/metrics-table.stories.js +27 -35
  105. package/lib-esm/components/metrics-table-options/metrics-table-options.js +15 -20
  106. package/lib-esm/components/metrics-table-options/metrics-table-options.stories.js +6 -12
  107. package/lib-esm/components/metrics-table-search/metrics-table-search.js +17 -18
  108. package/lib-esm/components/metrics-table-search/metrics-table-search.module.css +2 -1
  109. package/lib-esm/components/metrics-table-search/metrics-table-search.stories.js +4 -9
  110. package/lib-esm/components/metrics-table-title/metrics-table-title.js +9 -7
  111. package/lib-esm/components/module-info/module-info.js +15 -13
  112. package/lib-esm/components/module-info/module-info.stories.js +20 -22
  113. package/lib-esm/components/summary/summary.js +38 -52
  114. package/lib-esm/components/summary/summary.stories.js +28 -46
  115. package/lib-esm/components/summary-item/summary-item.js +25 -29
  116. package/lib-esm/components/summary-item/summary-item.stories.js +40 -50
  117. package/lib-esm/components/total-size-type-title/total-size-type-title.js +14 -15
  118. package/lib-esm/constants.js +25 -30
  119. package/lib-esm/hooks/rows-filter.js +19 -0
  120. package/lib-esm/hooks/rows-sort.js +21 -0
  121. package/lib-esm/hooks/search-params.js +166 -0
  122. package/lib-esm/layout/box/box.js +12 -19
  123. package/lib-esm/layout/box/box.stories.js +34 -46
  124. package/lib-esm/layout/flex-stack/flex-stack.js +9 -12
  125. package/lib-esm/layout/flex-stack/flex-stack.stories.js +39 -49
  126. package/lib-esm/layout/footer/footer.js +34 -37
  127. package/lib-esm/layout/footer/footer.stories.js +7 -11
  128. package/lib-esm/layout/header/header.js +17 -24
  129. package/lib-esm/layout/header/header.stories.js +34 -43
  130. package/lib-esm/layout/stack/stack.js +8 -6
  131. package/lib-esm/layout/stack/stack.stories.js +39 -49
  132. package/lib-esm/layout/sub-header/sub-header.js +14 -12
  133. package/lib-esm/layout/sub-header/sub-header.stories.js +57 -69
  134. package/lib-esm/prototypes/typography.stories.js +48 -58
  135. package/lib-esm/query-state.js +13 -16
  136. package/lib-esm/stories/wrapper.js +14 -26
  137. package/lib-esm/ui/alert/alert.js +6 -4
  138. package/lib-esm/ui/alert/alert.stories.js +14 -24
  139. package/lib-esm/ui/container/container.js +9 -15
  140. package/lib-esm/ui/container/container.stories.js +15 -17
  141. package/lib-esm/ui/dropdown/dropdown.js +13 -11
  142. package/lib-esm/ui/dropdown/dropdown.stories.js +19 -26
  143. package/lib-esm/ui/empty-set/empty-set.js +12 -12
  144. package/lib-esm/ui/empty-set/empty-set.stories.js +11 -19
  145. package/lib-esm/ui/file-name/file-name.js +7 -8
  146. package/lib-esm/ui/file-name/file-name.stories.js +12 -16
  147. package/lib-esm/ui/filters/filters.container.js +52 -77
  148. package/lib-esm/ui/filters/filters.js +61 -89
  149. package/lib-esm/ui/filters/filters.stories.js +81 -100
  150. package/lib-esm/ui/filters/filters.utils.js +24 -28
  151. package/lib-esm/ui/filters/index.js +1 -1
  152. package/lib-esm/ui/horizontal-bar-chart/horizontal-bar-chart.js +67 -78
  153. package/lib-esm/ui/horizontal-bar-chart/horizontal-bar-chart.stories.js +67 -77
  154. package/lib-esm/ui/icon/icon.js +14 -206
  155. package/lib-esm/ui/icon/icon.stories.js +16 -24
  156. package/lib-esm/ui/input/input.js +6 -10
  157. package/lib-esm/ui/input/input.stories.js +8 -12
  158. package/lib-esm/ui/loader/loader.js +7 -13
  159. package/lib-esm/ui/loader/loader.stories.js +5 -9
  160. package/lib-esm/ui/logo/logo.constants.js +6 -6
  161. package/lib-esm/ui/logo/logo.js +14 -15
  162. package/lib-esm/ui/logo/logo.stories.js +14 -28
  163. package/lib-esm/ui/panels/panels.js +14 -27
  164. package/lib-esm/ui/panels/panels.stories.js +14 -16
  165. package/lib-esm/ui/popover/popover.js +13 -10
  166. package/lib-esm/ui/popover/popover.module.css +3 -3
  167. package/lib-esm/ui/popover/popover.stories.js +7 -11
  168. package/lib-esm/ui/skeleton/skeleton.js +6 -9
  169. package/lib-esm/ui/skeleton/skeleton.stories.js +2 -4
  170. package/lib-esm/ui/sort-dropdown/sort-dropdown.js +36 -39
  171. package/lib-esm/ui/sort-dropdown/sort-dropdown.stories.js +14 -16
  172. package/lib-esm/ui/table/table.js +25 -31
  173. package/lib-esm/ui/table/table.stories.js +84 -102
  174. package/lib-esm/ui/tabs/tabs.js +14 -25
  175. package/lib-esm/ui/tabs/tabs.stories.js +4 -6
  176. package/lib-esm/ui/toolbar/toolbar.js +7 -5
  177. package/lib-esm/ui/toolbar/toolbar.stories.js +11 -16
  178. package/lib-esm/ui/tooltip/tooltip.js +15 -17
  179. package/lib-esm/ui/tooltip/tooltip.stories.js +8 -12
  180. package/lib-esm/utils.js +15 -28
  181. package/package.json +19 -27
  182. package/src/app/app.jsx +4 -1
  183. package/src/assets/icons/arrow.svg +1 -0
  184. package/src/assets/icons/cancel.svg +1 -0
  185. package/src/assets/icons/clock.svg +1 -0
  186. package/src/assets/icons/close.svg +1 -0
  187. package/src/assets/icons/commit.svg +1 -0
  188. package/src/assets/icons/filter.svg +1 -0
  189. package/src/assets/icons/help.svg +1 -0
  190. package/src/assets/icons/menu.svg +1 -0
  191. package/src/{ui/icon/assets → assets/icons}/sort.svg +0 -0
  192. package/src/assets/icons/warning.svg +1 -0
  193. package/src/assets/icons.svg +1 -0
  194. package/src/components/bundle-assets/bundle-assets.jsx +3 -3
  195. package/src/components/bundle-assets/bundle-assets.utils.js +96 -17
  196. package/src/components/bundle-assets/index.jsx +89 -0
  197. package/src/components/bundle-modules/bundle-modules.jsx +3 -3
  198. package/src/components/bundle-modules/bundle-modules.utils.js +101 -0
  199. package/src/components/bundle-modules/index.jsx +107 -0
  200. package/src/components/bundle-packages/bundle-packages.jsx +21 -8
  201. package/src/components/bundle-packages/bundle-packages.module.css +5 -0
  202. package/src/components/bundle-packages/bundle-packages.utils.js +47 -0
  203. package/src/components/bundle-packages/index.jsx +84 -0
  204. package/src/components/duplicate-packages-warning/duplicate-packages-warning.jsx +9 -2
  205. package/src/components/metrics-table/metrics-table.jsx +2 -7
  206. package/src/components/metrics-table-search/metrics-table-search.jsx +1 -0
  207. package/src/components/metrics-table-search/metrics-table-search.module.css +2 -1
  208. package/src/hooks/rows-filter.js +16 -0
  209. package/src/hooks/rows-sort.js +24 -0
  210. package/src/hooks/search-params.js +153 -0
  211. package/src/ui/icon/icon.jsx +7 -42
  212. package/src/ui/popover/popover.jsx +1 -1
  213. package/src/ui/popover/popover.module.css +3 -3
  214. package/src/ui/sort-dropdown/sort-dropdown.jsx +11 -11
  215. package/src/ui/tooltip/tooltip.jsx +1 -1
  216. package/lib/components/bundle-assets/bundle-assets.container.js +0 -140
  217. package/lib/components/bundle-modules/bundle-modules.container.js +0 -222
  218. package/lib/hocs/with-custom-sort.js +0 -75
  219. package/lib/hocs/with-filtered-items.js +0 -54
  220. package/lib/ui/icon/assets/arrow.svg +0 -4
  221. package/lib/ui/icon/assets/branch.svg +0 -3
  222. package/lib/ui/icon/assets/cancel.svg +0 -4
  223. package/lib/ui/icon/assets/clock.svg +0 -3
  224. package/lib/ui/icon/assets/close.svg +0 -4
  225. package/lib/ui/icon/assets/commit.svg +0 -3
  226. package/lib/ui/icon/assets/filter.svg +0 -4
  227. package/lib/ui/icon/assets/help.svg +0 -4
  228. package/lib/ui/icon/assets/job.svg +0 -3
  229. package/lib/ui/icon/assets/menu.svg +0 -4
  230. package/lib/ui/icon/assets/package.svg +0 -3
  231. package/lib/ui/icon/assets/pull-request.svg +0 -3
  232. package/lib/ui/icon/assets/repository.svg +0 -3
  233. package/lib/ui/icon/assets/warning.svg +0 -4
  234. package/lib-esm/components/bundle-assets/bundle-assets.container.js +0 -119
  235. package/lib-esm/components/bundle-modules/bundle-modules.container.js +0 -175
  236. package/lib-esm/components/bundle-packages/bundle-packages.container.js +0 -91
  237. package/lib-esm/hocs/with-custom-sort.js +0 -43
  238. package/lib-esm/hocs/with-filtered-items.js +0 -35
  239. package/lib-esm/hocs/with-search.js +0 -214
  240. package/lib-esm/ui/icon/assets/arrow.svg +0 -4
  241. package/lib-esm/ui/icon/assets/branch.svg +0 -3
  242. package/lib-esm/ui/icon/assets/cancel.svg +0 -4
  243. package/lib-esm/ui/icon/assets/clock.svg +0 -3
  244. package/lib-esm/ui/icon/assets/close.svg +0 -4
  245. package/lib-esm/ui/icon/assets/commit.svg +0 -3
  246. package/lib-esm/ui/icon/assets/filter.svg +0 -4
  247. package/lib-esm/ui/icon/assets/help.svg +0 -4
  248. package/lib-esm/ui/icon/assets/job.svg +0 -3
  249. package/lib-esm/ui/icon/assets/menu.svg +0 -4
  250. package/lib-esm/ui/icon/assets/package.svg +0 -3
  251. package/lib-esm/ui/icon/assets/pull-request.svg +0 -3
  252. package/lib-esm/ui/icon/assets/repository.svg +0 -3
  253. package/lib-esm/ui/icon/assets/warning.svg +0 -4
  254. package/src/components/bundle-assets/bundle-assets.container.js +0 -146
  255. package/src/components/bundle-assets/index.js +0 -4
  256. package/src/components/bundle-modules/bundle-modules.container.js +0 -158
  257. package/src/components/bundle-modules/index.js +0 -4
  258. package/src/components/bundle-packages/bundle-packages.container.js +0 -93
  259. package/src/components/bundle-packages/index.js +0 -4
  260. package/src/hocs/with-custom-sort.jsx +0 -35
  261. package/src/hocs/with-filtered-items.jsx +0 -34
  262. package/src/hocs/with-search.jsx +0 -184
  263. package/src/ui/icon/assets/arrow.svg +0 -4
  264. package/src/ui/icon/assets/branch.svg +0 -3
  265. package/src/ui/icon/assets/cancel.svg +0 -4
  266. package/src/ui/icon/assets/clock.svg +0 -3
  267. package/src/ui/icon/assets/close.svg +0 -4
  268. package/src/ui/icon/assets/commit.svg +0 -3
  269. package/src/ui/icon/assets/filter.svg +0 -4
  270. package/src/ui/icon/assets/help.svg +0 -4
  271. package/src/ui/icon/assets/job.svg +0 -3
  272. package/src/ui/icon/assets/menu.svg +0 -4
  273. package/src/ui/icon/assets/package.svg +0 -3
  274. package/src/ui/icon/assets/pull-request.svg +0 -3
  275. package/src/ui/icon/assets/repository.svg +0 -3
  276. package/src/ui/icon/assets/warning.svg +0 -4
@@ -1,3 +1,90 @@
1
- import { enhance } from './bundle-assets.container';
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
+ import React, { useMemo } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import * as webpack from '@bundle-stats/utils/lib-esm/webpack';
6
+ import { ASSET_FILTERS } from '@bundle-stats/utils';
7
+ import { getAssetEntryTypeFilters, getAssetFileTypeFilters } from '@bundle-stats/utils/lib-esm/utils/component-links';
8
+ import { useRowsFilter } from '../../hooks/rows-filter';
9
+ import { useRowsSort } from '../../hooks/rows-sort';
10
+ import { useSearchParams } from '../../hooks/search-params';
2
11
  import { BundleAssets as BundleAssetsComponent } from './bundle-assets';
3
- export var BundleAssets = enhance(BundleAssetsComponent);
12
+ import { addRowAssetFlags, addRowIsNotPredictive, getRowFilter, getCustomSort } from './bundle-assets.utils';
13
+ import { SORT_BY } from './bundle-assets.constants';
14
+ export const BundleAssets = props => {
15
+ const {
16
+ jobs,
17
+ filters,
18
+ search,
19
+ setState,
20
+ sortBy,
21
+ direction,
22
+ ...restProps
23
+ } = props;
24
+ const {
25
+ defaultFilters,
26
+ allEntriesFilters
27
+ } = useMemo(() => ({
28
+ defaultFilters: {
29
+ [ASSET_FILTERS.CHANGED]: (jobs == null ? void 0 : jobs.length) > 1,
30
+ ...getAssetEntryTypeFilters(true),
31
+ ...getAssetFileTypeFilters(true)
32
+ },
33
+ allEntriesFilters: {
34
+ [ASSET_FILTERS.CHANGED]: false,
35
+ ...getAssetEntryTypeFilters(true),
36
+ ...getAssetFileTypeFilters(true)
37
+ }
38
+ }), [jobs]);
39
+ const searchParams = useSearchParams({
40
+ search,
41
+ filters,
42
+ defaultFilters,
43
+ allEntriesFilters,
44
+ setState
45
+ });
46
+ const {
47
+ rows,
48
+ totalRowCount
49
+ } = useMemo(() => {
50
+ const result = webpack.compareBySection.assets(jobs, [addRowAssetFlags, addRowIsNotPredictive]);
51
+ return {
52
+ rows: result,
53
+ totalRowCount: result.length
54
+ };
55
+ }, [jobs]);
56
+ const filteredRows = useRowsFilter({
57
+ rows,
58
+ searchPattern: searchParams.searchPattern,
59
+ filters: searchParams.filters,
60
+ getRowFilter
61
+ });
62
+ const sortParams = useRowsSort({
63
+ rows: filteredRows,
64
+ sortFields: SORT_BY,
65
+ sortBy,
66
+ sortDirection: direction,
67
+ getCustomSort
68
+ });
69
+ return /*#__PURE__*/React.createElement(BundleAssetsComponent, _extends({
70
+ jobs: jobs
71
+ }, restProps, searchParams, sortParams, {
72
+ totalRowCount: totalRowCount
73
+ }));
74
+ };
75
+ BundleAssets.propTypes = {
76
+ jobs: PropTypes.arrayOf(PropTypes.object).isRequired,
77
+ // eslint-disable-line react/forbid-prop-types
78
+ filters: PropTypes.object,
79
+ // eslint-disable-line react/forbid-prop-types
80
+ search: PropTypes.string,
81
+ sortBy: PropTypes.string,
82
+ direction: PropTypes.string,
83
+ setState: PropTypes.func.isRequired
84
+ };
85
+ BundleAssets.defaultProps = {
86
+ filters: undefined,
87
+ search: undefined,
88
+ sortBy: undefined,
89
+ direction: undefined
90
+ };
@@ -17,78 +17,73 @@ import { getColors } from '../../utils';
17
17
  import { Stack } from '../../layout/stack';
18
18
  import { SummaryItem } from '../summary-item';
19
19
  import css from './bundle-assets-totals-chart-bars.module.css';
20
- export var BundleAssetsTotalsChartBars = function BundleAssetsTotalsChartBars(_ref) {
21
- var className = _ref.className,
22
- jobs = _ref.jobs,
23
- CustomComponentLink = _ref.customComponentLink;
24
- var rootClassName = cx(css.root, className);
25
- var items = webpack.compareBySection.sizes(jobs);
26
- var dataGraphs = [];
27
- items.forEach(function (_ref2) {
28
- var runs = _ref2.runs;
29
- runs.forEach(function (run, runIndex) {
30
- dataGraphs[runIndex] = [].concat(dataGraphs[runIndex] || [], [_get(run, 'value', 0)]);
20
+ export const BundleAssetsTotalsChartBars = ({
21
+ className,
22
+ jobs,
23
+ customComponentLink: CustomComponentLink
24
+ }) => {
25
+ const rootClassName = cx(css.root, className);
26
+ const items = webpack.compareBySection.sizes(jobs);
27
+ const dataGraphs = [];
28
+ items.forEach(({
29
+ runs
30
+ }) => {
31
+ runs.forEach((run, runIndex) => {
32
+ dataGraphs[runIndex] = [...(dataGraphs[runIndex] || []), _get(run, 'value', 0)];
31
33
  });
32
34
  });
33
35
 
34
- var maxValues = _max(_map(dataGraphs, function (values) {
35
- return _sum(values);
36
- }));
36
+ const maxValues = _max(_map(dataGraphs, values => _sum(values)));
37
37
 
38
- var maxValue = _max(maxValues);
38
+ const maxValue = _max(maxValues);
39
39
 
40
- var labels = items.map(function (_ref3) {
41
- var key = _ref3.key,
42
- label = _ref3.label;
43
- var fileType = ASSETS_SIZES_FILE_TYPE_MAP[key];
44
- var componentData = getBundleAssetsFileTypeComponentLink(fileType, label);
40
+ const labels = items.map(({
41
+ key,
42
+ label
43
+ }) => {
44
+ const fileType = ASSETS_SIZES_FILE_TYPE_MAP[key];
45
+ const componentData = getBundleAssetsFileTypeComponentLink(fileType, label);
45
46
  return /*#__PURE__*/React.createElement(CustomComponentLink, _extends({
46
47
  className: css.itemLink
47
48
  }, componentData), label);
48
49
  });
49
- var colors = getColors(_max(_map(dataGraphs, function (values) {
50
- return values.length;
51
- })));
50
+ const colors = getColors(_max(_map(dataGraphs, values => values.length)));
52
51
 
53
- var getTooltip = function getTooltip(itemIndex, runIndex) {
54
- return function () {
55
- return /*#__PURE__*/React.createElement(SummaryItem, {
56
- className: css.itemTooltip,
57
- id: _get(items, [itemIndex, 'key']),
58
- data: {
59
- current: _get(items, [itemIndex, 'runs', runIndex, 'value'], 0),
60
- baseline: _get(items, [itemIndex, 'runs', runIndex + 1, 'value'], 0)
61
- },
62
- showDelta: runIndex < jobs.length - 1,
63
- showBaselineValue: runIndex < jobs.length - 1,
64
- size: "large"
65
- });
66
- };
67
- };
52
+ const getTooltip = (itemIndex, runIndex) => () => /*#__PURE__*/React.createElement(SummaryItem, {
53
+ className: css.itemTooltip,
54
+ id: _get(items, [itemIndex, 'key']),
55
+ data: {
56
+ current: _get(items, [itemIndex, 'runs', runIndex, 'value'], 0),
57
+ baseline: _get(items, [itemIndex, 'runs', runIndex + 1, 'value'], 0)
58
+ },
59
+ showDelta: runIndex < jobs.length - 1,
60
+ showBaselineValue: runIndex < jobs.length - 1,
61
+ size: "large"
62
+ });
68
63
 
69
64
  return /*#__PURE__*/React.createElement(Stack, {
70
65
  className: rootClassName,
71
66
  space: "medium"
72
- }, dataGraphs.map(function (data, runIndex) {
73
- var internalBuildNumber = jobs[runIndex].internalBuildNumber;
74
- var values = data.map(function (value, valueIndex) {
75
- return {
76
- value: value,
77
- color: colors[valueIndex],
78
- label: labels[valueIndex],
79
- getItemTooltip: getTooltip(valueIndex, runIndex)
80
- };
81
- });
67
+ }, dataGraphs.map((data, runIndex) => {
68
+ const {
69
+ internalBuildNumber
70
+ } = jobs[runIndex];
71
+ const values = data.map((value, valueIndex) => ({
72
+ value,
73
+ color: colors[valueIndex],
74
+ label: labels[valueIndex],
75
+ getItemTooltip: getTooltip(valueIndex, runIndex)
76
+ }));
82
77
  return /*#__PURE__*/React.createElement("div", {
83
78
  key: internalBuildNumber || runIndex,
84
79
  className: css.item
85
80
  }, /*#__PURE__*/React.createElement("h3", {
86
81
  className: css.itemTitle
87
- }, "Job #" + internalBuildNumber), /*#__PURE__*/React.createElement(HorizontalBarChart, {
82
+ }, `Job #${internalBuildNumber}`), /*#__PURE__*/React.createElement(HorizontalBarChart, {
88
83
  className: css.itemChart,
89
84
  data: {
90
- labels: labels,
91
- values: values
85
+ labels,
86
+ values
92
87
  },
93
88
  maxValue: maxValue
94
89
  }));
@@ -5,25 +5,21 @@ import currentData from '../../../__mocks__/webpack-stats.current.json';
5
5
  import baselineData from '../../../__mocks__/webpack-stats.baseline.json';
6
6
  import { getWrapperDecorator } from '../../stories';
7
7
  import { BundleAssetsTotalsChartBars } from './bundle-assets-totals-chart-bars';
8
- var JOBS = createJobs([{
8
+ const JOBS = createJobs([{
9
9
  webpack: currentData
10
10
  }, {
11
11
  webpack: baselineData
12
12
  }]);
13
- var EMPTY_BASELINE = createJobs([{
13
+ const EMPTY_BASELINE = createJobs([{
14
14
  webpack: currentData
15
15
  }, {
16
16
  webpack: null
17
17
  }]);
18
- var stories = storiesOf('Components/BundleAssetsTotalsChartBars', module);
18
+ const stories = storiesOf('Components/BundleAssetsTotalsChartBars', module);
19
19
  stories.addDecorator(getWrapperDecorator());
20
- stories.add('component', function () {
21
- return /*#__PURE__*/React.createElement(BundleAssetsTotalsChartBars, {
22
- jobs: JOBS
23
- });
24
- });
25
- stories.add('empty baseline', function () {
26
- return /*#__PURE__*/React.createElement(BundleAssetsTotalsChartBars, {
27
- jobs: EMPTY_BASELINE
28
- });
29
- });
20
+ stories.add('component', () => /*#__PURE__*/React.createElement(BundleAssetsTotalsChartBars, {
21
+ jobs: JOBS
22
+ }));
23
+ stories.add('empty baseline', () => /*#__PURE__*/React.createElement(BundleAssetsTotalsChartBars, {
24
+ jobs: EMPTY_BASELINE
25
+ }));
@@ -5,20 +5,20 @@ import * as webpack from '@bundle-stats/utils/lib-esm/webpack';
5
5
  import { ASSETS_SIZES_FILE_TYPE_MAP } from '../../constants';
6
6
  import { MetricsTable } from '../metrics-table';
7
7
  import { ComponentLink } from '../component-link';
8
- export var BundleAssetsTotalsTable = function BundleAssetsTotalsTable(_ref) {
9
- var className = _ref.className,
10
- jobs = _ref.jobs,
11
- CustomComponentLink = _ref.customComponentLink;
12
- var items = webpack.compareBySection.sizes(jobs);
13
-
14
- var renderRowHeader = function renderRowHeader(item) {
15
- var fileType = ASSETS_SIZES_FILE_TYPE_MAP[item.key];
16
-
17
- var _getBundleAssetsFileT = getBundleAssetsFileTypeComponentLink(fileType, item.label),
18
- section = _getBundleAssetsFileT.section,
19
- title = _getBundleAssetsFileT.title,
20
- params = _getBundleAssetsFileT.params;
8
+ export const BundleAssetsTotalsTable = ({
9
+ className,
10
+ jobs,
11
+ customComponentLink: CustomComponentLink
12
+ }) => {
13
+ const items = webpack.compareBySection.sizes(jobs);
21
14
 
15
+ const renderRowHeader = item => {
16
+ const fileType = ASSETS_SIZES_FILE_TYPE_MAP[item.key];
17
+ const {
18
+ section,
19
+ title,
20
+ params
21
+ } = getBundleAssetsFileTypeComponentLink(fileType, item.label);
22
22
  return /*#__PURE__*/React.createElement(CustomComponentLink, {
23
23
  section: section,
24
24
  title: title,
@@ -5,29 +5,23 @@ import baselineStats from '../../../__mocks__/webpack-stats.baseline.json';
5
5
  import currentStats from '../../../__mocks__/webpack-stats.current.json';
6
6
  import { getWrapperDecorator } from '../../stories';
7
7
  import { BundleAssetsTotalsTable } from '.';
8
- var JOBS = createJobs([{
8
+ const JOBS = createJobs([{
9
9
  webpack: currentStats
10
10
  }, {
11
11
  webpack: baselineStats
12
12
  }]);
13
- var currentJob = JOBS[0];
14
- var stories = storiesOf('Components/BundleAssetsTotalsTable', module);
13
+ const [currentJob] = JOBS;
14
+ const stories = storiesOf('Components/BundleAssetsTotalsTable', module);
15
15
  stories.addDecorator(getWrapperDecorator());
16
- stories.add('default', function () {
17
- return /*#__PURE__*/React.createElement(BundleAssetsTotalsTable, {
18
- jobs: [currentJob]
19
- });
20
- });
21
- stories.add('multiple jobs', function () {
22
- return /*#__PURE__*/React.createElement(BundleAssetsTotalsTable, {
23
- jobs: JOBS
24
- });
25
- });
26
- var JOBS_EMPTY_BASELINE = createJobs([{
16
+ stories.add('default', () => /*#__PURE__*/React.createElement(BundleAssetsTotalsTable, {
17
+ jobs: [currentJob]
18
+ }));
19
+ stories.add('multiple jobs', () => /*#__PURE__*/React.createElement(BundleAssetsTotalsTable, {
20
+ jobs: JOBS
21
+ }));
22
+ const JOBS_EMPTY_BASELINE = createJobs([{
27
23
  webpack: currentStats
28
24
  }, null]);
29
- stories.add('empty baseline', function () {
30
- return /*#__PURE__*/React.createElement(BundleAssetsTotalsTable, {
31
- jobs: JOBS_EMPTY_BASELINE
32
- });
33
- });
25
+ stories.add('empty baseline', () => /*#__PURE__*/React.createElement(BundleAssetsTotalsTable, {
26
+ jobs: JOBS_EMPTY_BASELINE
27
+ }));
@@ -1,15 +1,17 @@
1
- var _SORT_BY;
2
-
3
- export var SORT_BY_NAME = 'name';
4
- export var SORT_BY_SIZE = 'size';
5
- export var SORT_BY_DELTA = 'delta';
6
- export var SORT_BY = (_SORT_BY = {}, _SORT_BY[SORT_BY_NAME] = {
7
- label: 'Name',
8
- defaultDirection: 'asc'
9
- }, _SORT_BY[SORT_BY_DELTA] = {
10
- label: 'Delta',
11
- defaultDirection: 'desc'
12
- }, _SORT_BY[SORT_BY_SIZE] = {
13
- label: 'Size',
14
- defaultDirection: 'desc'
15
- }, _SORT_BY);
1
+ export const SORT_BY_NAME = 'name';
2
+ export const SORT_BY_SIZE = 'size';
3
+ export const SORT_BY_DELTA = 'delta';
4
+ export const SORT_BY = {
5
+ [SORT_BY_NAME]: {
6
+ label: 'Name',
7
+ defaultDirection: 'asc'
8
+ },
9
+ [SORT_BY_DELTA]: {
10
+ label: 'Delta',
11
+ defaultDirection: 'desc'
12
+ },
13
+ [SORT_BY_SIZE]: {
14
+ label: 'Size',
15
+ defaultDirection: 'desc'
16
+ }
17
+ };