@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
@@ -5,32 +5,30 @@ import cx from 'classnames';
5
5
  import { Icon } from '../../ui/icon';
6
6
  import { Input } from '../../ui/input';
7
7
  import css from './metrics-table-search.module.css';
8
- export var MetricsTableSearch = function MetricsTableSearch(props) {
9
- var className = props.className,
10
- placeholder = props.placeholder,
11
- search = props.search,
12
- updateSearch = props.updateSearch;
13
- var rootClassname = cx(css.root, className);
8
+ export const MetricsTableSearch = props => {
9
+ const {
10
+ className,
11
+ placeholder,
12
+ search,
13
+ updateSearch
14
+ } = props;
15
+ const rootClassname = cx(css.root, className);
16
+ const [value, setValue] = useState(search); // Update local state when initial value has changed
14
17
 
15
- var _useState = useState(search),
16
- value = _useState[0],
17
- setValue = _useState[1]; // Update local state when initial value has changed
18
-
19
-
20
- useEffect(function () {
18
+ useEffect(() => {
21
19
  setValue(search);
22
20
  }, [search]);
23
- var debouncedUpdateSearch = useCallback(_debounce(updateSearch, 500), []);
24
- var handleChangeValue = useCallback(function (event) {
25
- var newValue = event.target.value;
21
+ const debouncedUpdateSearch = useCallback(_debounce(updateSearch, 500), []);
22
+ const handleChangeValue = useCallback(event => {
23
+ const newValue = event.target.value;
26
24
  setValue(newValue); // Update parent state when the local value has changed
27
25
 
28
26
  if (newValue !== search) {
29
27
  debouncedUpdateSearch(newValue);
30
28
  }
31
29
  }, [search]);
32
- var handleClearValue = useCallback(function () {
33
- var newValue = '';
30
+ const handleClearValue = useCallback(() => {
31
+ const newValue = '';
34
32
  setValue(newValue);
35
33
  updateSearch(newValue);
36
34
  }, []);
@@ -41,7 +39,8 @@ export var MetricsTableSearch = function MetricsTableSearch(props) {
41
39
  placeholder: placeholder,
42
40
  onChange: handleChangeValue,
43
41
  value: value,
44
- size: "small"
42
+ size: "small",
43
+ autoComplete: "off"
45
44
  }), search && /*#__PURE__*/React.createElement("button", {
46
45
  className: css.cancelButton,
47
46
  type: "button",
@@ -5,6 +5,7 @@
5
5
  }
6
6
 
7
7
  .input {
8
+ height: var(--space-large);
8
9
  border-color: var(--color-outline);
9
10
  }
10
11
 
@@ -26,7 +27,7 @@
26
27
  padding: var(--space-xxsmall);
27
28
  width: var(--space-large);
28
29
  height: var(--space-large);
29
- background: radial-gradient(var(--color-background), transparent 75%);
30
+ background: radial-gradient(var(--color-background) 50%, transparent);
30
31
  color: var(--color-text-ultra-light);
31
32
  transition: var(--transition-in);
32
33
  }
@@ -2,14 +2,11 @@ import React, { useState } from 'react';
2
2
  import { storiesOf } from '@storybook/react';
3
3
  import { getWrapperDecorator } from '../../stories';
4
4
  import { MetricsTableSearch } from '.';
5
- var stories = storiesOf('Components/MetricsTableSearch', module);
5
+ const stories = storiesOf('Components/MetricsTableSearch', module);
6
6
  stories.addDecorator(getWrapperDecorator());
7
7
 
8
- var MetricsTableWithState = function MetricsTableWithState() {
9
- var _useState = useState(''),
10
- search = _useState[0],
11
- updateSearch = _useState[1];
12
-
8
+ const MetricsTableWithState = () => {
9
+ const [search, updateSearch] = useState('');
13
10
  return /*#__PURE__*/React.createElement(MetricsTableSearch, {
14
11
  placeholder: "Search name",
15
12
  search: search,
@@ -17,6 +14,4 @@ var MetricsTableWithState = function MetricsTableWithState() {
17
14
  });
18
15
  };
19
16
 
20
- stories.add('default', function () {
21
- return /*#__PURE__*/React.createElement(MetricsTableWithState, null);
22
- });
17
+ stories.add('default', () => /*#__PURE__*/React.createElement(MetricsTableWithState, null));
@@ -6,13 +6,15 @@ import { FlexStack } from '../../layout/flex-stack';
6
6
  import { Stack } from '../../layout/stack';
7
7
  import { Popover } from '../../ui/popover';
8
8
  import css from './metrics-table-title.module.css';
9
- export var MetricsTableTitle = function MetricsTableTitle(props) {
10
- var className = props.className,
11
- title = props.title,
12
- info = props.info,
13
- popoverInfo = props.popoverInfo,
14
- popoverHref = props.popoverHref;
15
- var rootClassName = cx(css.root, className);
9
+ export const MetricsTableTitle = props => {
10
+ const {
11
+ className,
12
+ title,
13
+ info,
14
+ popoverInfo,
15
+ popoverHref
16
+ } = props;
17
+ const rootClassName = cx(css.root, className);
16
18
  return /*#__PURE__*/React.createElement(Stack, {
17
19
  space: "xxxsmall",
18
20
  className: rootClassName
@@ -11,20 +11,22 @@ import { Stack } from '../../layout/stack';
11
11
  import { FileName } from '../../ui/file-name';
12
12
  import { ComponentLink } from '../component-link';
13
13
  import css from './module-info.module.css';
14
- export var ModuleInfo = function ModuleInfo(props) {
15
- var className = props.className,
16
- item = props.item,
17
- labels = props.labels,
18
- chunks = props.chunks,
19
- chunkIds = props.chunkIds,
20
- CustomComponentLink = props.customComponentLink,
21
- onClick = props.onClick;
14
+ export const ModuleInfo = props => {
15
+ const {
16
+ className,
17
+ item,
18
+ labels,
19
+ chunks,
20
+ chunkIds,
21
+ customComponentLink: CustomComponentLink,
22
+ onClick
23
+ } = props;
22
24
  return /*#__PURE__*/React.createElement(Stack, {
23
25
  space: "small",
24
26
  className: className
25
- }, item.runs.map(function (run, index) {
26
- var TitleComponent = index !== 0 ? 'h4' : 'h3';
27
- var key = "module-info-" + ((run == null ? void 0 : run.name) || index) + "-" + index;
27
+ }, item.runs.map((run, index) => {
28
+ const TitleComponent = index !== 0 ? 'h4' : 'h3';
29
+ const key = `module-info-${(run == null ? void 0 : run.name) || index}-${index}`;
28
30
  return /*#__PURE__*/React.createElement(Stack, {
29
31
  space: "xxxsmall",
30
32
  key: key
@@ -32,8 +34,8 @@ export var ModuleInfo = function ModuleInfo(props) {
32
34
  className: css.chunks
33
35
  }, /*#__PURE__*/React.createElement("strong", {
34
36
  className: css.chunksTitle
35
- }, "Chunks:"), run.chunkIds.map(function (chunkId) {
36
- var chunk = _find(chunks, {
37
+ }, "Chunks:"), run.chunkIds.map(chunkId => {
38
+ const chunk = _find(chunks, {
37
39
  id: chunkId
38
40
  });
39
41
 
@@ -2,26 +2,24 @@ import React from 'react';
2
2
  import { storiesOf } from '@storybook/react';
3
3
  import { getWrapperDecorator } from '../../stories';
4
4
  import { ModuleInfo } from '.';
5
- var stories = storiesOf('Components/ModuleInfo', module);
5
+ const stories = storiesOf('Components/ModuleInfo', module);
6
6
  stories.addDecorator(getWrapperDecorator());
7
- stories.add('default', function () {
8
- return /*#__PURE__*/React.createElement(ModuleInfo, {
9
- item: {
10
- runs: [{
11
- key: './node_modules/lodash/fp/_baseConvert.js',
12
- name: './node_modules/lodash/fp/_baseConvert.js',
13
- chunkIds: ['2']
14
- }, {
15
- key: './node_modules/lodash/fp/_baseConvert.js',
16
- name: './node_modules/lodash/fp/_baseConvert.js',
17
- chunkIds: ['2']
18
- }]
19
- },
20
- chunks: [{
21
- id: '2',
22
- name: 'vendors'
23
- }],
24
- chunkIds: ['1', '2'],
25
- labels: ['Job #2', 'Job #1']
26
- });
27
- });
7
+ stories.add('default', () => /*#__PURE__*/React.createElement(ModuleInfo, {
8
+ item: {
9
+ runs: [{
10
+ key: './node_modules/lodash/fp/_baseConvert.js',
11
+ name: './node_modules/lodash/fp/_baseConvert.js',
12
+ chunkIds: ['2']
13
+ }, {
14
+ key: './node_modules/lodash/fp/_baseConvert.js',
15
+ name: './node_modules/lodash/fp/_baseConvert.js',
16
+ chunkIds: ['2']
17
+ }]
18
+ },
19
+ chunks: [{
20
+ id: '2',
21
+ name: 'vendors'
22
+ }],
23
+ chunkIds: ['1', '2'],
24
+ labels: ['Job #2', 'Job #1']
25
+ }));
@@ -1,13 +1,7 @@
1
1
  import _get from "lodash/get";
2
2
 
3
- var _PropTypes$shape;
4
-
5
- var _excluded = ["className"];
6
-
7
3
  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); }
8
4
 
9
- 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; }
10
-
11
5
  import React from 'react';
12
6
  import PropTypes from 'prop-types';
13
7
  import cx from 'classnames';
@@ -18,48 +12,38 @@ import { FlexStack } from '../../layout/flex-stack';
18
12
  import { ComponentLink } from '../component-link';
19
13
  import { SummaryItem } from '../summary-item';
20
14
  import css from './summary.module.css';
21
- export var Summary = function Summary(_ref) {
22
- var className = _ref.className,
23
- size = _ref.size,
24
- keys = _ref.keys,
25
- data = _ref.data,
26
- loading = _ref.loading,
27
- showSummaryItemDelta = _ref.showSummaryItemDelta,
28
- SummaryItemCustomLink = _ref.summaryItemLink;
29
- return /*#__PURE__*/React.createElement(Box, {
30
- outline: true,
31
- className: cx(css.root, className)
32
- }, /*#__PURE__*/React.createElement(FlexStack, {
33
- className: css.items
34
- }, Array.from(METRIC_COMPONENT_LINKS).filter(function (_ref2) {
35
- var metricId = _ref2[0];
36
- return keys.includes(metricId);
37
- }).map(function (_ref3) {
38
- var metricId = _ref3[0],
39
- metricOptions = _ref3[1];
40
- return /*#__PURE__*/React.createElement(SummaryItem, {
41
- as: function as(_ref4) {
42
- var itemClassName = _ref4.className,
43
- itemProps = _objectWithoutPropertiesLoose(_ref4, _excluded);
44
-
45
- return /*#__PURE__*/React.createElement(Box, _extends({
46
- padding: ['xsmall', 'small'],
47
- className: cx(itemClassName, css.summaryItemLink)
48
- }, itemProps, {
49
- as: SummaryItemCustomLink
50
- }, metricOptions.link));
51
- },
52
- size: size,
53
- key: metricId,
54
- id: metricId,
55
- data: _get(data, metricId),
56
- loading: loading,
57
- showMetricDescription: true,
58
- showDelta: showSummaryItemDelta && metricOptions.showDelta !== false,
59
- className: css.item
60
- });
61
- })));
62
- };
15
+ export const Summary = ({
16
+ className,
17
+ size,
18
+ keys,
19
+ data,
20
+ loading,
21
+ showSummaryItemDelta,
22
+ summaryItemLink: SummaryItemCustomLink
23
+ }) => /*#__PURE__*/React.createElement(Box, {
24
+ outline: true,
25
+ className: cx(css.root, className)
26
+ }, /*#__PURE__*/React.createElement(FlexStack, {
27
+ className: css.items
28
+ }, Array.from(METRIC_COMPONENT_LINKS).filter(([metricId]) => keys.includes(metricId)).map(([metricId, metricOptions]) => /*#__PURE__*/React.createElement(SummaryItem, {
29
+ as: ({
30
+ className: itemClassName,
31
+ ...itemProps
32
+ }) => /*#__PURE__*/React.createElement(Box, _extends({
33
+ padding: ['xsmall', 'small'],
34
+ className: cx(itemClassName, css.summaryItemLink)
35
+ }, itemProps, {
36
+ as: SummaryItemCustomLink
37
+ }, metricOptions.link)),
38
+ size: size,
39
+ key: metricId,
40
+ id: metricId,
41
+ data: _get(data, metricId),
42
+ loading: loading,
43
+ showMetricDescription: true,
44
+ showDelta: showSummaryItemDelta && metricOptions.showDelta !== false,
45
+ className: css.item
46
+ }))));
63
47
  Summary.defaultProps = {
64
48
  className: '',
65
49
  data: null,
@@ -73,10 +57,12 @@ Summary.propTypes = {
73
57
  className: PropTypes.string,
74
58
  size: PropTypes.string,
75
59
  keys: PropTypes.arrayOf(PropTypes.string),
76
- data: PropTypes.shape((_PropTypes$shape = {}, _PropTypes$shape[PropTypes.string] = PropTypes.shape({
77
- baseline: PropTypes.number,
78
- current: PropTypes.number
79
- }), _PropTypes$shape)),
60
+ data: PropTypes.shape({
61
+ [PropTypes.string]: PropTypes.shape({
62
+ baseline: PropTypes.number,
63
+ current: PropTypes.number
64
+ })
65
+ }),
80
66
  loading: PropTypes.bool,
81
67
  showSummaryItemDelta: PropTypes.bool,
82
68
  summaryItemLink: PropTypes.elementType
@@ -1,9 +1,5 @@
1
- var _excluded = ["keyProps"];
2
-
3
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); }
4
2
 
5
- 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; }
6
-
7
3
  import React from 'react';
8
4
  import { storiesOf } from '@storybook/react';
9
5
  import { createJobs } from '@bundle-stats/utils';
@@ -12,52 +8,38 @@ import currentData from '../../../__mocks__/webpack-stats.current.json';
12
8
  import { METRICS_WEBPACK_ASSETS } from '../../constants';
13
9
  import { getWrapperDecorator } from '../../stories';
14
10
  import { Summary } from '.';
15
- var MULTIPLE_JOBS = createJobs([{
11
+ const MULTIPLE_JOBS = createJobs([{
16
12
  webpack: currentData
17
13
  }, {
18
14
  webpack: baselineData
19
15
  }]);
20
- var SINGLE_JOB = createJobs([{
16
+ const SINGLE_JOB = createJobs([{
21
17
  webpack: currentData
22
18
  }]);
23
- var stories = storiesOf('Components/Summary', module);
19
+ const stories = storiesOf('Components/Summary', module);
24
20
  stories.addDecorator(getWrapperDecorator());
25
- stories.add('default', function () {
26
- return /*#__PURE__*/React.createElement(Summary, {
27
- data: MULTIPLE_JOBS[0].summary
28
- });
29
- });
30
- stories.add('custom keys', function () {
31
- return /*#__PURE__*/React.createElement(Summary, {
32
- keys: METRICS_WEBPACK_ASSETS,
33
- data: MULTIPLE_JOBS[0].summary
34
- });
35
- });
36
- stories.add('loading', function () {
37
- return /*#__PURE__*/React.createElement(Summary, {
38
- loading: true
39
- });
40
- });
41
- stories.add('single run', function () {
42
- return /*#__PURE__*/React.createElement(Summary, {
43
- data: SINGLE_JOB[0].summary,
44
- showSummaryItemDelta: false
45
- });
46
- });
47
- stories.add('with link', function () {
48
- return /*#__PURE__*/React.createElement(Summary, {
49
- data: MULTIPLE_JOBS[0].summary,
50
- summaryItemLink: function summaryItemLink(_ref) {
51
- var keyProps = _ref.keyProps,
52
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
53
-
54
- return /*#__PURE__*/React.createElement("button", _extends({
55
- type: "button"
56
- }, props, {
57
- onClick: function onClick() {
58
- return alert(JSON.stringify(keyProps));
59
- }
60
- }));
61
- }
62
- });
63
- });
21
+ stories.add('default', () => /*#__PURE__*/React.createElement(Summary, {
22
+ data: MULTIPLE_JOBS[0].summary
23
+ }));
24
+ stories.add('custom keys', () => /*#__PURE__*/React.createElement(Summary, {
25
+ keys: METRICS_WEBPACK_ASSETS,
26
+ data: MULTIPLE_JOBS[0].summary
27
+ }));
28
+ stories.add('loading', () => /*#__PURE__*/React.createElement(Summary, {
29
+ loading: true
30
+ }));
31
+ stories.add('single run', () => /*#__PURE__*/React.createElement(Summary, {
32
+ data: SINGLE_JOB[0].summary,
33
+ showSummaryItemDelta: false
34
+ }));
35
+ stories.add('with link', () => /*#__PURE__*/React.createElement(Summary, {
36
+ data: MULTIPLE_JOBS[0].summary,
37
+ summaryItemLink: ({
38
+ keyProps,
39
+ ...props
40
+ }) => /*#__PURE__*/React.createElement("button", _extends({
41
+ type: "button"
42
+ }, props, {
43
+ onClick: () => alert(JSON.stringify(keyProps))
44
+ }))
45
+ }));
@@ -1,9 +1,5 @@
1
- var _excluded = ["className", "as", "size", "id", "data", "loading", "showDelta", "showMetricDescription"];
2
-
3
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); }
4
2
 
5
- 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; }
6
-
7
3
  import React from 'react';
8
4
  import PropTypes from 'prop-types';
9
5
  import cx from 'classnames';
@@ -16,12 +12,12 @@ import { Metric } from '../metric';
16
12
  import { Delta } from '../delta';
17
13
  import css from './summary-item.module.css';
18
14
 
19
- var MetricInfo = function MetricInfo(_ref) {
20
- var description = _ref.description,
21
- url = _ref.url;
22
-
15
+ const MetricInfo = ({
16
+ description,
17
+ url
18
+ }) => {
23
19
  // Workaround cases where the parent is a link
24
- var readMoreOnClick = function readMoreOnClick() {
20
+ const readMoreOnClick = () => {
25
21
  window.open(url);
26
22
  };
27
23
 
@@ -41,28 +37,28 @@ MetricInfo.propTypes = {
41
37
  MetricInfo.defaultProps = {
42
38
  url: ''
43
39
  };
44
- export var SummaryItem = function SummaryItem(_ref2) {
45
- var className = _ref2.className,
46
- Component = _ref2.as,
47
- size = _ref2.size,
48
- id = _ref2.id,
49
- data = _ref2.data,
50
- loading = _ref2.loading,
51
- showDelta = _ref2.showDelta,
52
- showMetricDescription = _ref2.showMetricDescription,
53
- props = _objectWithoutPropertiesLoose(_ref2, _excluded);
54
-
55
- var _ref3 = data || {
40
+ export const SummaryItem = ({
41
+ className,
42
+ as: Component,
43
+ size,
44
+ id,
45
+ data,
46
+ loading,
47
+ showDelta,
48
+ showMetricDescription,
49
+ ...props
50
+ }) => {
51
+ const {
52
+ baseline,
53
+ current
54
+ } = data || {
56
55
  baseline: 0,
57
56
  current: 0
58
- },
59
- baseline = _ref3.baseline,
60
- current = _ref3.current;
61
-
62
- var metric = getGlobalMetricType(id);
63
- var runInfo = getMetricRunInfo(metric, current, baseline);
64
- var showMetricDescriptionTooltip = showMetricDescription && (metric == null ? void 0 : metric.description);
65
- var rootClassName = cx(css.root, className, css[size], showMetricDescription && css.showMetricDescription, showMetricDescriptionTooltip && css.showMetricDescription, showDelta && css.showDelta);
57
+ };
58
+ const metric = getGlobalMetricType(id);
59
+ const runInfo = getMetricRunInfo(metric, current, baseline);
60
+ const showMetricDescriptionTooltip = showMetricDescription && (metric == null ? void 0 : metric.description);
61
+ const rootClassName = cx(css.root, className, css[size], showMetricDescription && css.showMetricDescription, showMetricDescriptionTooltip && css.showMetricDescription, showDelta && css.showDelta);
66
62
  return /*#__PURE__*/React.createElement(Stack, _extends({
67
63
  space: "xxsmall",
68
64
  as: Component,
@@ -2,56 +2,46 @@ import React from 'react';
2
2
  import { storiesOf } from '@storybook/react';
3
3
  import { getWrapperDecorator } from '../../stories';
4
4
  import { SummaryItem } from './summary-item';
5
- var stories = storiesOf('Components/SummaryItem', module);
5
+ const stories = storiesOf('Components/SummaryItem', module);
6
6
  stories.addDecorator(getWrapperDecorator({
7
7
  maxWidth: '320px'
8
8
  }));
9
- stories.add('default', function () {
10
- return /*#__PURE__*/React.createElement(SummaryItem, {
11
- loading: false,
12
- id: "webpack.totalSizeByTypeALL",
13
- data: {
14
- current: 120 * 1000,
15
- baseline: 100 * 1000
16
- }
17
- });
18
- });
19
- stories.add('size large', function () {
20
- return /*#__PURE__*/React.createElement(SummaryItem, {
21
- size: "large",
22
- loading: false,
23
- id: "webpack.totalSizeByTypeALL",
24
- data: {
25
- current: 120 * 1000,
26
- baseline: 100 * 1000
27
- }
28
- });
29
- });
30
- stories.add('showMetricDescription', function () {
31
- return /*#__PURE__*/React.createElement(SummaryItem, {
32
- loading: false,
33
- id: "webpack.totalSizeByTypeALL",
34
- data: {
35
- current: 120 * 1000,
36
- baseline: 100 * 1000
37
- },
38
- showMetricDescription: true
39
- });
40
- });
41
- stories.add('showDelta false', function () {
42
- return /*#__PURE__*/React.createElement(SummaryItem, {
43
- loading: false,
44
- id: "webpack.totalSizeByTypeALL",
45
- data: {
46
- current: 120 * 1000,
47
- baseline: 0
48
- },
49
- showDelta: false
50
- });
51
- });
52
- stories.add('loading', function () {
53
- return /*#__PURE__*/React.createElement(SummaryItem, {
54
- loading: true,
55
- id: "webpack.totalSizeByTypeALL"
56
- });
57
- });
9
+ stories.add('default', () => /*#__PURE__*/React.createElement(SummaryItem, {
10
+ loading: false,
11
+ id: "webpack.totalSizeByTypeALL",
12
+ data: {
13
+ current: 120 * 1000,
14
+ baseline: 100 * 1000
15
+ }
16
+ }));
17
+ stories.add('size large', () => /*#__PURE__*/React.createElement(SummaryItem, {
18
+ size: "large",
19
+ loading: false,
20
+ id: "webpack.totalSizeByTypeALL",
21
+ data: {
22
+ current: 120 * 1000,
23
+ baseline: 100 * 1000
24
+ }
25
+ }));
26
+ stories.add('showMetricDescription', () => /*#__PURE__*/React.createElement(SummaryItem, {
27
+ loading: false,
28
+ id: "webpack.totalSizeByTypeALL",
29
+ data: {
30
+ current: 120 * 1000,
31
+ baseline: 100 * 1000
32
+ },
33
+ showMetricDescription: true
34
+ }));
35
+ stories.add('showDelta false', () => /*#__PURE__*/React.createElement(SummaryItem, {
36
+ loading: false,
37
+ id: "webpack.totalSizeByTypeALL",
38
+ data: {
39
+ current: 120 * 1000,
40
+ baseline: 0
41
+ },
42
+ showDelta: false
43
+ }));
44
+ stories.add('loading', () => /*#__PURE__*/React.createElement(SummaryItem, {
45
+ loading: true,
46
+ id: "webpack.totalSizeByTypeALL"
47
+ }));
@@ -7,21 +7,20 @@ import { FlexStack } from '../../layout/flex-stack';
7
7
  import { Stack } from '../../layout/stack';
8
8
  import { Popover } from '../../ui/popover';
9
9
  import css from './total-size-type-title.module.css';
10
- export var TotalSizeTypeTitle = function TotalSizeTypeTitle(_ref) {
11
- var className = _ref.className;
12
- return /*#__PURE__*/React.createElement(FlexStack, {
13
- space: "xxxsmall",
14
- className: cx(css.title, className)
15
- }, /*#__PURE__*/React.createElement("span", null, I18N.ASSET_TOTALS), /*#__PURE__*/React.createElement(Popover, {
16
- icon: "help"
17
- }, /*#__PURE__*/React.createElement(Stack, {
18
- space: "xxxsmall"
19
- }, /*#__PURE__*/React.createElement("p", null, I18N.ASSET_TOTALS_INFO), /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement("a", {
20
- href: config.documentation.assets,
21
- target: "_blank",
22
- rel: "noreferrer"
23
- }, I18N.READ_MORE)))));
24
- };
10
+ export const TotalSizeTypeTitle = ({
11
+ className
12
+ }) => /*#__PURE__*/React.createElement(FlexStack, {
13
+ space: "xxxsmall",
14
+ className: cx(css.title, className)
15
+ }, /*#__PURE__*/React.createElement("span", null, I18N.ASSET_TOTALS), /*#__PURE__*/React.createElement(Popover, {
16
+ icon: "help"
17
+ }, /*#__PURE__*/React.createElement(Stack, {
18
+ space: "xxxsmall"
19
+ }, /*#__PURE__*/React.createElement("p", null, I18N.ASSET_TOTALS_INFO), /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement("a", {
20
+ href: config.documentation.assets,
21
+ target: "_blank",
22
+ rel: "noreferrer"
23
+ }, I18N.READ_MORE)))));
25
24
  TotalSizeTypeTitle.propTypes = {
26
25
  className: PropTypes.string
27
26
  };