@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,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
+ };
@@ -1,11 +1,9 @@
1
- var _PropTypes$shape;
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
3
  import React, { useCallback } from 'react';
6
4
  import PropTypes from 'prop-types';
7
5
  import cx from 'classnames';
8
- import { PACKAGE_FILTERS, PACKAGES_SEPARATOR, getBundleModulesBySearch, getBundlePackagesByNameComponentLink } from '@bundle-stats/utils';
6
+ import { PACKAGE_FILTERS, PACKAGES_SEPARATOR, PACKAGE_ID_SEPARATOR, getBundleModulesBySearch, getBundlePackagesByNameComponentLink } from '@bundle-stats/utils';
9
7
  import config from '../../config.json';
10
8
  import I18N from '../../i18n';
11
9
  import { Stack } from '../../layout/stack';
@@ -23,13 +21,15 @@ import { MetricsTableOptions } from '../metrics-table-options';
23
21
  import { MetricsTableTitle } from '../metrics-table-title';
24
22
  import css from './bundle-packages.module.css';
25
23
 
26
- var PackagePopoverContent = function PackagePopoverContent(_ref) {
27
- var name = _ref.name,
28
- fullName = _ref.fullName,
29
- path = _ref.path,
30
- duplicate = _ref.duplicate,
31
- CustomComponentLink = _ref.CustomComponentLink;
32
- var normalizedPackagePath = path || "node_modules/" + fullName.split(PACKAGES_SEPARATOR).join('/node_modules/') + "/";
24
+ const PackagePopoverContent = ({
25
+ name,
26
+ fullName,
27
+ path,
28
+ duplicate,
29
+ CustomComponentLink
30
+ }) => {
31
+ const normalizedPackagePath = path || `node_modules/${fullName.split(PACKAGES_SEPARATOR).join('/node_modules/')}/`;
32
+ const [normalizedName, packageId] = name.split(PACKAGE_ID_SEPARATOR);
33
33
  return /*#__PURE__*/React.createElement(Stack, {
34
34
  space: "xxsmall",
35
35
  className: css.packagePopover
@@ -37,7 +37,9 @@ var PackagePopoverContent = function PackagePopoverContent(_ref) {
37
37
  space: "xxxsmall"
38
38
  }, /*#__PURE__*/React.createElement("h3", {
39
39
  className: css.packagePopoverTitle
40
- }, name), /*#__PURE__*/React.createElement("p", {
40
+ }, normalizedName, packageId && /*#__PURE__*/React.createElement("span", {
41
+ className: css.packagePopoverTitleIndex
42
+ }, `${PACKAGE_ID_SEPARATOR}${packageId}`)), /*#__PURE__*/React.createElement("p", {
41
43
  className: css.packagePopoverPath
42
44
  }, /*#__PURE__*/React.createElement(FileName, {
43
45
  className: css.packagePopoverPathValue,
@@ -47,19 +49,19 @@ var PackagePopoverContent = function PackagePopoverContent(_ref) {
47
49
  }, /*#__PURE__*/React.createElement("li", {
48
50
  className: css.packagePopoverItem
49
51
  }, /*#__PURE__*/React.createElement("a", {
50
- href: "https://www.npmjs.com/package/" + name,
52
+ href: `https://www.npmjs.com/package/${normalizedName}`,
51
53
  target: "_blank",
52
54
  rel: "noreferrer"
53
55
  }, "npmjs.com")), /*#__PURE__*/React.createElement("li", {
54
56
  className: css.packagePopoverItem
55
57
  }, /*#__PURE__*/React.createElement("a", {
56
- href: "https://bundlephobia.com/result?p=" + name,
58
+ href: `https://bundlephobia.com/result?p=${normalizedName}`,
57
59
  target: "_blank",
58
60
  rel: "noreferrer"
59
61
  }, "bundlephobia.com"))), /*#__PURE__*/React.createElement(Stack, {
60
62
  space: "xxxsmall",
61
63
  className: css.packagePopover.actions
62
- }, duplicate && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(CustomComponentLink, getBundlePackagesByNameComponentLink(name), "View all duplicate instances")), /*#__PURE__*/React.createElement(CustomComponentLink, getBundleModulesBySearch(normalizedPackagePath), "View package modules")));
64
+ }, duplicate && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(CustomComponentLink, getBundlePackagesByNameComponentLink(normalizedName), "View all duplicate instances")), /*#__PURE__*/React.createElement(CustomComponentLink, getBundleModulesBySearch(normalizedPackagePath), "Search modules by package path")));
63
65
  };
64
66
 
65
67
  PackagePopoverContent.propTypes = {
@@ -73,19 +75,19 @@ PackagePopoverContent.defaultProps = {
73
75
  path: ''
74
76
  };
75
77
 
76
- var PackageRowHeader = function PackageRowHeader(_ref2) {
77
- var item = _ref2.item,
78
- CustomComponentLink = _ref2.CustomComponentLink;
79
- var packageNames = item.label.split(PACKAGES_SEPARATOR);
80
-
81
- var _ref3 = item.runs[0] || {},
82
- path = _ref3.path;
83
-
78
+ const PackageRowHeader = ({
79
+ item,
80
+ CustomComponentLink
81
+ }) => {
82
+ const packageNames = item.label.split(PACKAGES_SEPARATOR);
83
+ const {
84
+ path
85
+ } = item.runs[0] || {};
84
86
  return /*#__PURE__*/React.createElement("span", {
85
87
  className: css.packageNames
86
- }, packageNames.map(function (packageName, index) {
88
+ }, packageNames.map((packageName, index) => {
87
89
  // Render duplicate flag only for the last entry
88
- var duplicateFlag = index === packageNames.length - 1 && item.duplicate && /*#__PURE__*/React.createElement("span", {
90
+ const duplicateFlag = index === packageNames.length - 1 && item.duplicate && /*#__PURE__*/React.createElement("span", {
89
91
  className: css.duplicate,
90
92
  title: "Duplicate package"
91
93
  }, "D");
@@ -113,69 +115,69 @@ PackageRowHeader.propTypes = {
113
115
  }).isRequired,
114
116
  CustomComponentLink: PropTypes.elementType.isRequired
115
117
  };
116
- export var BundlePackages = function BundlePackages(props) {
117
- var _ref5;
118
-
119
- var className = props.className,
120
- jobs = props.jobs,
121
- items = props.items,
122
- updateFilters = props.updateFilters,
123
- resetFilters = props.resetFilters,
124
- resetAllFilters = props.resetAllFilters,
125
- totalRowCount = props.totalRowCount,
126
- filters = props.filters,
127
- sortItems = props.sortItems,
128
- sort = props.sort,
129
- updateSort = props.updateSort,
130
- search = props.search,
131
- updateSearch = props.updateSearch,
132
- hasActiveFilters = props.hasActiveFilters,
133
- CustomComponentLink = props.customComponentLink;
134
- var emptyMessage = /*#__PURE__*/React.createElement(EmptySet, {
118
+ export const BundlePackages = props => {
119
+ const {
120
+ className,
121
+ jobs,
122
+ items,
123
+ updateFilters,
124
+ resetFilters,
125
+ resetAllFilters,
126
+ totalRowCount,
127
+ filters,
128
+ sortFields,
129
+ sort,
130
+ updateSort,
131
+ search,
132
+ updateSearch,
133
+ hasActiveFilters,
134
+ customComponentLink: CustomComponentLink
135
+ } = props;
136
+ const emptyMessage = /*#__PURE__*/React.createElement(EmptySet, {
135
137
  resources: "packages",
136
138
  filtered: totalRowCount !== 0,
137
139
  handleResetFilters: resetFilters,
138
140
  handleViewAll: resetAllFilters
139
141
  });
140
- var renderRowHeader = useCallback(function (item) {
141
- return /*#__PURE__*/React.createElement(PackageRowHeader, {
142
- item: item,
143
- CustomComponentLink: CustomComponentLink
144
- });
145
- }, [CustomComponentLink]);
142
+ const renderRowHeader = useCallback(item => /*#__PURE__*/React.createElement(PackageRowHeader, {
143
+ item: item,
144
+ CustomComponentLink: CustomComponentLink
145
+ }), [CustomComponentLink]);
146
146
  return /*#__PURE__*/React.createElement("section", {
147
147
  className: cx(css.root, className)
148
148
  }, /*#__PURE__*/React.createElement(Toolbar, {
149
149
  className: css.toolbar,
150
- renderActions: function renderActions(_ref4) {
151
- var actionClassName = _ref4.actionClassName;
152
- return /*#__PURE__*/React.createElement(FlexStack, {
153
- space: "xxsmall",
154
- className: cx(css.dropdown, actionClassName)
155
- }, /*#__PURE__*/React.createElement(SortDropdown, _extends({
156
- items: sortItems
157
- }, sort, {
158
- onChange: updateSort
159
- })), /*#__PURE__*/React.createElement(MetricsTableOptions, {
160
- handleViewAll: resetAllFilters,
161
- handleResetFilters: resetFilters
162
- }));
163
- }
150
+ renderActions: ({
151
+ actionClassName
152
+ }) => /*#__PURE__*/React.createElement(FlexStack, {
153
+ space: "xxsmall",
154
+ className: cx(css.dropdown, actionClassName)
155
+ }, /*#__PURE__*/React.createElement(SortDropdown, _extends({
156
+ fields: sortFields
157
+ }, sort, {
158
+ onChange: updateSort
159
+ })), /*#__PURE__*/React.createElement(MetricsTableOptions, {
160
+ handleViewAll: resetAllFilters,
161
+ handleResetFilters: resetFilters
162
+ }))
164
163
  }, /*#__PURE__*/React.createElement(FlexStack, null, /*#__PURE__*/React.createElement(MetricsTableSearch, {
165
164
  className: css.toolbarSearch,
166
165
  placeholder: "Search by name",
167
166
  search: search,
168
167
  updateSearch: updateSearch
169
168
  }), /*#__PURE__*/React.createElement(Filters, {
170
- filters: (_ref5 = {}, _ref5[PACKAGE_FILTERS.CHANGED] = {
171
- label: 'Changed',
172
- defaultValue: filters[PACKAGE_FILTERS.CHANGED],
173
- disabled: jobs.length <= 1
174
- }, _ref5[PACKAGE_FILTERS.DUPLICATE] = {
175
- label: 'Duplicate',
176
- defaultValue: filters[PACKAGE_FILTERS.DUPLICATE]
177
- }, _ref5),
178
- label: "Filters (" + items.length + "/" + totalRowCount + ")",
169
+ filters: {
170
+ [PACKAGE_FILTERS.CHANGED]: {
171
+ label: 'Changed',
172
+ defaultValue: filters[PACKAGE_FILTERS.CHANGED],
173
+ disabled: jobs.length <= 1
174
+ },
175
+ [PACKAGE_FILTERS.DUPLICATE]: {
176
+ label: 'Duplicate',
177
+ defaultValue: filters[PACKAGE_FILTERS.DUPLICATE]
178
+ }
179
+ },
180
+ label: `Filters (${items.length}/${totalRowCount})`,
179
181
  onChange: updateFilters,
180
182
  hasActiveFilters: hasActiveFilters
181
183
  }))), /*#__PURE__*/React.createElement("main", null, /*#__PURE__*/React.createElement(MetricsTable, {
@@ -186,7 +188,7 @@ export var BundlePackages = function BundlePackages(props) {
186
188
  showHeaderSum: true,
187
189
  title: /*#__PURE__*/React.createElement(MetricsTableTitle, {
188
190
  title: I18N.PACKAGES,
189
- info: "(" + items.length + "/" + totalRowCount + ")",
191
+ info: `(${items.length}/${totalRowCount})`,
190
192
  popoverInfo: I18N.PACKAGES_INFO,
191
193
  popoverHref: config.documentation.packages
192
194
  })
@@ -219,10 +221,12 @@ BundlePackages.propTypes = {
219
221
  changed: PropTypes.bool
220
222
  }).isRequired,
221
223
  hasActiveFilters: PropTypes.bool,
222
- sortItems: PropTypes.shape((_PropTypes$shape = {}, _PropTypes$shape[PropTypes.string] = PropTypes.shape({
223
- label: PropTypes.string,
224
- defaultDirection: PropTypes.bool
225
- }), _PropTypes$shape)).isRequired,
224
+ sortFields: PropTypes.shape({
225
+ [PropTypes.string]: PropTypes.shape({
226
+ label: PropTypes.string,
227
+ defaultDirection: PropTypes.bool
228
+ })
229
+ }).isRequired,
226
230
  sort: PropTypes.shape({
227
231
  sortBy: PropTypes.string,
228
232
  direction: PropTypes.string
@@ -47,6 +47,11 @@
47
47
  min-width: 320px;
48
48
  }
49
49
 
50
+ .packagePopoverTitleIndex {
51
+ color: var(--color-text-light);
52
+ font-weight: normal;
53
+ }
54
+
50
55
  .packagePopoverPathValue {
51
56
  padding: var(--space-xxxsmall);
52
57
  background: var(--color-highlight-warning);
@@ -7,58 +7,46 @@ import baselineStats from '../../../__mocks__/webpack-stats.baseline.json';
7
7
  import currentStats from '../../../__mocks__/webpack-stats.current.json';
8
8
  import { getWrapperDecorator } from '../../stories';
9
9
  import { BundlePackages } from '.';
10
- var JOBS = createJobs([{
10
+ const JOBS = createJobs([{
11
11
  webpack: currentStats
12
12
  }, {
13
13
  webpack: baselineStats
14
14
  }]);
15
- var currentJob = JOBS[0],
16
- baselineJob = JOBS[1];
17
- var stories = storiesOf('Components/BundlePackages', module);
15
+ const [currentJob, baselineJob] = JOBS;
16
+ const stories = storiesOf('Components/BundlePackages', module);
18
17
  stories.addDecorator(getWrapperDecorator());
19
- stories.add('default', function () {
20
- return /*#__PURE__*/React.createElement(BundlePackages, {
21
- jobs: [baselineJob]
22
- });
23
- });
24
- stories.add('multiple jobs', function () {
25
- return /*#__PURE__*/React.createElement(BundlePackages, {
26
- jobs: JOBS
27
- });
28
- });
29
- stories.add('custom filters', function () {
30
- var _ref;
31
-
32
- return /*#__PURE__*/React.createElement(BundlePackages, {
33
- jobs: JOBS,
34
- filters: (_ref = {}, _ref[PACKAGE_FILTERS.CHANGED] = false, _ref[PACKAGE_FILTERS.DUPLICATE] = true, _ref)
35
- });
36
- });
37
- stories.add('empty packages', function () {
38
- return /*#__PURE__*/React.createElement(BundlePackages, {
39
- jobs: [_set(_merge({}, currentJob), 'metrics.webpack.packages', {}), _set(_merge({}, baselineJob), 'metrics.webpack.packages', {})]
40
- });
41
- });
42
- stories.add('empty filtered packages', function () {
43
- return /*#__PURE__*/React.createElement(BundlePackages, {
44
- jobs: [_set(_merge({}, currentJob), 'metrics.webpack.packages', {
45
- 'package-a': {
46
- value: 100
47
- }
48
- }), _set(_merge({}, baselineJob), 'metrics.webpack.packages', {
49
- 'package-a': {
50
- value: 100
51
- }
52
- })]
53
- });
54
- });
55
- var JOBS_EMPTY_BASELINE = createJobs([{
18
+ stories.add('default', () => /*#__PURE__*/React.createElement(BundlePackages, {
19
+ jobs: [baselineJob]
20
+ }));
21
+ stories.add('multiple jobs', () => /*#__PURE__*/React.createElement(BundlePackages, {
22
+ jobs: JOBS
23
+ }));
24
+ stories.add('custom filters', () => /*#__PURE__*/React.createElement(BundlePackages, {
25
+ jobs: JOBS,
26
+ filters: {
27
+ [PACKAGE_FILTERS.CHANGED]: false,
28
+ [PACKAGE_FILTERS.DUPLICATE]: true
29
+ }
30
+ }));
31
+ stories.add('empty packages', () => /*#__PURE__*/React.createElement(BundlePackages, {
32
+ jobs: [_set(_merge({}, currentJob), 'metrics.webpack.packages', {}), _set(_merge({}, baselineJob), 'metrics.webpack.packages', {})]
33
+ }));
34
+ stories.add('empty filtered packages', () => /*#__PURE__*/React.createElement(BundlePackages, {
35
+ jobs: [_set(_merge({}, currentJob), 'metrics.webpack.packages', {
36
+ 'package-a': {
37
+ value: 100
38
+ }
39
+ }), _set(_merge({}, baselineJob), 'metrics.webpack.packages', {
40
+ 'package-a': {
41
+ value: 100
42
+ }
43
+ })]
44
+ }));
45
+ const JOBS_EMPTY_BASELINE = createJobs([{
56
46
  webpack: currentStats
57
47
  }, {
58
48
  webpack: null
59
49
  }]);
60
- stories.add('empty baseline', function () {
61
- return /*#__PURE__*/React.createElement(BundlePackages, {
62
- jobs: JOBS_EMPTY_BASELINE
63
- });
64
- });
50
+ stories.add('empty baseline', () => /*#__PURE__*/React.createElement(BundlePackages, {
51
+ jobs: JOBS_EMPTY_BASELINE
52
+ }));
@@ -0,0 +1,44 @@
1
+ import _uniq from "lodash/uniq";
2
+ import _flatten from "lodash/flatten";
3
+ import _get from "lodash/get";
4
+ import { PACKAGE_FILTERS } from '@bundle-stats/utils';
5
+ import { SORT_BY_NAME, SORT_BY_DELTA, SORT_BY_SIZE } from './bundle-packages.constants'; // Get a list of duplicate packages across jobs
6
+
7
+ export const getDuplicatePackages = jobs => {
8
+ const jobsDuplicatePackages = jobs.map(job => {
9
+ var _job$insights, _job$insights$webpack, _job$insights$webpack2;
10
+
11
+ const insightsData = (job == null ? void 0 : (_job$insights = job.insights) == null ? void 0 : (_job$insights$webpack = _job$insights.webpack) == null ? void 0 : (_job$insights$webpack2 = _job$insights$webpack.duplicatePackages) == null ? void 0 : _job$insights$webpack2.data) || {};
12
+ return Object.values(insightsData).flat();
13
+ });
14
+ return _uniq(_flatten(jobsDuplicatePackages));
15
+ };
16
+ export const getRowFilter = filters => item => {
17
+ if (filters[PACKAGE_FILTERS.CHANGED] && !item.changed) {
18
+ return false;
19
+ }
20
+
21
+ if (filters[PACKAGE_FILTERS.DUPLICATE] && !item.duplicate) {
22
+ return false;
23
+ }
24
+
25
+ return true;
26
+ };
27
+ export const getCustomSort = sortId => item => {
28
+ if (sortId === SORT_BY_NAME) {
29
+ return item.key;
30
+ }
31
+
32
+ if (sortId === SORT_BY_DELTA) {
33
+ return _get(item, 'runs[0].deltaPercentage', 0);
34
+ }
35
+
36
+ if (sortId === SORT_BY_SIZE) {
37
+ return _get(item, 'runs[0].value', 0);
38
+ }
39
+
40
+ return [!item.changed, item.key];
41
+ };
42
+ export const getAddRowDuplicateFlag = duplicateJobs => row => ({ ...row,
43
+ duplicate: duplicateJobs.includes(row.key)
44
+ });
@@ -1,3 +1,88 @@
1
- import { enhance } from './bundle-packages.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 { PACKAGE_FILTERS } from '@bundle-stats/utils';
6
+ import * as webpack from '@bundle-stats/utils/lib-esm/webpack/compare';
7
+ import { useRowsFilter } from '../../hooks/rows-filter';
8
+ import { useRowsSort } from '../../hooks/rows-sort';
9
+ import { useSearchParams } from '../../hooks/search-params';
10
+ import { SORT_BY } from './bundle-packages.constants';
2
11
  import { BundlePackages as BundlePackagesComponent } from './bundle-packages';
3
- export var BundlePackages = enhance(BundlePackagesComponent);
12
+ import { getDuplicatePackages, getAddRowDuplicateFlag, getRowFilter, getCustomSort } from './bundle-packages.utils';
13
+ export const BundlePackages = props => {
14
+ const {
15
+ jobs,
16
+ search,
17
+ filters,
18
+ setState,
19
+ sortBy,
20
+ direction,
21
+ ...restProps
22
+ } = props;
23
+ const {
24
+ defaultFilters,
25
+ allEntriesFilters
26
+ } = useMemo(() => ({
27
+ defaultFilters: {
28
+ [PACKAGE_FILTERS.CHANGED]: (jobs == null ? void 0 : jobs.length) > 1,
29
+ [PACKAGE_FILTERS.DUPLICATE]: false
30
+ },
31
+ allEntriesFilters: {
32
+ [PACKAGE_FILTERS.CHANGED]: false,
33
+ [PACKAGE_FILTERS.DUPLICATE]: false
34
+ }
35
+ }), [jobs]);
36
+ const searchParams = useSearchParams({
37
+ search,
38
+ filters,
39
+ defaultFilters,
40
+ allEntriesFilters,
41
+ setState
42
+ });
43
+ const {
44
+ rows,
45
+ totalRowCount
46
+ } = useMemo(() => {
47
+ const duplicateJobs = getDuplicatePackages(jobs);
48
+ const result = webpack.compareBySection.packages(jobs, [getAddRowDuplicateFlag(duplicateJobs)]);
49
+ return {
50
+ rows: result,
51
+ totalRowCount: result.length
52
+ };
53
+ }, [jobs]);
54
+ const filteredRows = useRowsFilter({
55
+ rows,
56
+ searchPattern: searchParams.searchPattern,
57
+ filters: searchParams.filters,
58
+ getRowFilter
59
+ });
60
+ const sortParams = useRowsSort({
61
+ rows: filteredRows,
62
+ sortFields: SORT_BY,
63
+ sortBy,
64
+ sortDirection: direction,
65
+ getCustomSort
66
+ });
67
+ return /*#__PURE__*/React.createElement(BundlePackagesComponent, _extends({
68
+ jobs: jobs
69
+ }, restProps, searchParams, sortParams, {
70
+ totalRowCount: totalRowCount
71
+ }));
72
+ };
73
+ BundlePackages.propTypes = {
74
+ jobs: PropTypes.arrayOf(PropTypes.object).isRequired,
75
+ // eslint-disable-line react/forbid-prop-types
76
+ filters: PropTypes.object,
77
+ // eslint-disable-line react/forbid-prop-types
78
+ search: PropTypes.string,
79
+ sortBy: PropTypes.string,
80
+ direction: PropTypes.string,
81
+ setState: PropTypes.func.isRequired
82
+ };
83
+ BundlePackages.defaultProps = {
84
+ filters: undefined,
85
+ search: undefined,
86
+ sortBy: undefined,
87
+ direction: undefined
88
+ };
@@ -1,24 +1,20 @@
1
- var _excluded = ["section", "title", "params"];
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 { Link } from 'react-router-dom';
10
6
  import { getComponentStateQueryString } from '@bundle-stats/utils';
11
7
  import { SECTION_URLS } from '../constants';
12
- export var ComponentLink = function ComponentLink(_ref) {
13
- var section = _ref.section,
14
- title = _ref.title,
15
- params = _ref.params,
16
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
17
-
18
- var search = getComponentStateQueryString(params);
19
- var location = {
8
+ export const ComponentLink = ({
9
+ section,
10
+ title,
11
+ params,
12
+ ...props
13
+ }) => {
14
+ const search = getComponentStateQueryString(params);
15
+ const location = {
20
16
  pathname: SECTION_URLS[section],
21
- search: search
17
+ search
22
18
  };
23
19
  return /*#__PURE__*/React.createElement(Link, _extends({
24
20
  to: location,
@@ -2,12 +2,13 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import cx from 'classnames';
4
4
  import css from './delta.module.css';
5
- export var Delta = function Delta(_ref) {
6
- var className = _ref.className,
7
- displayValue = _ref.displayValue,
8
- deltaType = _ref.deltaType,
9
- inverted = _ref.inverted;
10
- var rootClassName = cx(css.root, className, inverted && css.inverted, css[deltaType]);
5
+ export const Delta = ({
6
+ className,
7
+ displayValue,
8
+ deltaType,
9
+ inverted
10
+ }) => {
11
+ const rootClassName = cx(css.root, className, inverted && css.inverted, css[deltaType]);
11
12
  return /*#__PURE__*/React.createElement("span", {
12
13
  className: rootClassName
13
14
  }, displayValue);
@@ -2,42 +2,30 @@ import React from 'react';
2
2
  import { storiesOf } from '@storybook/react';
3
3
  import { getWrapperDecorator } from '../../stories';
4
4
  import { Delta } from '.';
5
- var stories = storiesOf('Components/Delta', module);
5
+ const stories = storiesOf('Components/Delta', module);
6
6
  stories.addDecorator(getWrapperDecorator());
7
- stories.add('default', function () {
8
- return /*#__PURE__*/React.createElement(Delta, {
9
- displayValue: "20%",
10
- deltaType: "POSITIVE"
11
- });
12
- });
13
- stories.add('negative', function () {
14
- return /*#__PURE__*/React.createElement(Delta, {
15
- displayValue: "20%",
16
- deltaType: "NEGATIVE"
17
- });
18
- });
19
- stories.add('slightlyNegative', function () {
20
- return /*#__PURE__*/React.createElement(Delta, {
21
- displayValue: "1%",
22
- deltaType: "LOW_NEGATIVE"
23
- });
24
- });
25
- stories.add('slightlyPositive', function () {
26
- return /*#__PURE__*/React.createElement(Delta, {
27
- displayValue: "1%",
28
- deltaType: "LOW_POSITIVE"
29
- });
30
- });
31
- stories.add('empty', function () {
32
- return /*#__PURE__*/React.createElement(Delta, {
33
- displayValue: "0%",
34
- deltaType: "NO_CHANGE"
35
- });
36
- });
37
- stories.add('inverted', function () {
38
- return /*#__PURE__*/React.createElement(Delta, {
39
- displayValue: "1%",
40
- deltaType: "LOW_NEGATIVE",
41
- inverted: true
42
- });
43
- });
7
+ stories.add('default', () => /*#__PURE__*/React.createElement(Delta, {
8
+ displayValue: "20%",
9
+ deltaType: "POSITIVE"
10
+ }));
11
+ stories.add('negative', () => /*#__PURE__*/React.createElement(Delta, {
12
+ displayValue: "20%",
13
+ deltaType: "NEGATIVE"
14
+ }));
15
+ stories.add('slightlyNegative', () => /*#__PURE__*/React.createElement(Delta, {
16
+ displayValue: "1%",
17
+ deltaType: "LOW_NEGATIVE"
18
+ }));
19
+ stories.add('slightlyPositive', () => /*#__PURE__*/React.createElement(Delta, {
20
+ displayValue: "1%",
21
+ deltaType: "LOW_POSITIVE"
22
+ }));
23
+ stories.add('empty', () => /*#__PURE__*/React.createElement(Delta, {
24
+ displayValue: "0%",
25
+ deltaType: "NO_CHANGE"
26
+ }));
27
+ stories.add('inverted', () => /*#__PURE__*/React.createElement(Delta, {
28
+ displayValue: "1%",
29
+ deltaType: "LOW_NEGATIVE",
30
+ inverted: true
31
+ }));