@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,17 +1,7 @@
1
1
  import _get from "lodash/get";
2
- var _excluded = ["className", "label", "name", "getOnOnlyClick"],
3
- _excluded2 = ["label"];
4
-
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
6
-
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
-
9
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
2
 
11
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); }
12
4
 
13
- 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; }
14
-
15
5
  import React from 'react';
16
6
  import PropTypes from 'prop-types';
17
7
  import cx from 'classnames';
@@ -20,15 +10,16 @@ import { Dropdown } from '../dropdown';
20
10
  import { getGroupFiltersLabelSuffix, LABELS } from './filters.utils';
21
11
  import css from './filters.module.css';
22
12
 
23
- var Filter = function Filter(props) {
24
- var className = props.className,
25
- label = props.label,
26
- name = props.name,
27
- getOnOnlyClick = props.getOnOnlyClick,
28
- inputProps = _objectWithoutPropertiesLoose(props, _excluded);
29
-
30
- var id = "filter-" + name;
31
- var rootClassName = cx(css.filter, className);
13
+ const Filter = props => {
14
+ const {
15
+ className,
16
+ label,
17
+ name,
18
+ getOnOnlyClick,
19
+ ...inputProps
20
+ } = props;
21
+ const id = `filter-${name}`;
22
+ const rootClassName = cx(css.filter, className);
32
23
  return /*#__PURE__*/React.createElement("div", {
33
24
  className: rootClassName
34
25
  }, /*#__PURE__*/React.createElement(FlexStack, {
@@ -61,69 +52,52 @@ Filter.defaultProps = {
61
52
  getOnOnlyClick: null
62
53
  };
63
54
 
64
- var FilterGroup = function FilterGroup(props) {
65
- var groupKey = props.groupKey,
66
- data = props.data,
67
- values = props.values,
68
- onCheckboxChange = props.onCheckboxChange,
69
- toggleFilters = props.toggleFilters;
70
-
71
- var groupLabel = data.label,
72
- groupData = _objectWithoutPropertiesLoose(data, _excluded2);
73
-
74
- var groupItems = Object.entries(groupData);
75
- var groupCheckboxes = groupItems.filter(function (_ref) {
76
- var itemKey = _ref[0],
77
- item = _ref[1];
78
- return typeof (item == null ? void 0 : item.defaultValue) !== 'undefined';
79
- });
80
- var isGroupChecked = groupCheckboxes.map(function (_ref2) {
81
- var itemKey = _ref2[0];
82
- return _get(values, groupKey + "." + itemKey);
83
- }).reduce(function (agg, val) {
84
- return agg && val;
85
- }, true);
86
- var filterSuffix = getGroupFiltersLabelSuffix(groupItems);
87
- var hasCustomFilterSuffix = !Object.values(LABELS).includes(filterSuffix);
88
- var dropdownLabel = /*#__PURE__*/React.createElement(React.Fragment, null, groupLabel + ":", "\xA0", /*#__PURE__*/React.createElement("span", {
55
+ const FilterGroup = props => {
56
+ const {
57
+ groupKey,
58
+ data,
59
+ values,
60
+ onCheckboxChange,
61
+ toggleFilters
62
+ } = props;
63
+ const {
64
+ label: groupLabel,
65
+ ...groupData
66
+ } = data;
67
+ const groupItems = Object.entries(groupData);
68
+ const groupCheckboxes = groupItems.filter(([itemKey, item]) => typeof (item == null ? void 0 : item.defaultValue) !== 'undefined');
69
+ const isGroupChecked = groupCheckboxes.map(([itemKey]) => _get(values, `${groupKey}.${itemKey}`)).reduce((agg, val) => agg && val, true);
70
+ const filterSuffix = getGroupFiltersLabelSuffix(groupItems);
71
+ const hasCustomFilterSuffix = !Object.values(LABELS).includes(filterSuffix);
72
+ const dropdownLabel = /*#__PURE__*/React.createElement(React.Fragment, null, `${groupLabel}:`, "\xA0", /*#__PURE__*/React.createElement("span", {
89
73
  className: cx(hasCustomFilterSuffix && css.labelSuffixCustom)
90
74
  }, filterSuffix));
91
75
 
92
- var getOnGroupCheck = function getOnGroupCheck(value, overrides) {
93
- if (overrides === void 0) {
94
- overrides = {};
95
- }
96
-
97
- return function () {
98
- var newFilters = groupCheckboxes.reduce(function (agg, _ref3) {
99
- var _objectSpread2;
100
-
101
- var itemKey = _ref3[0];
102
- return _objectSpread(_objectSpread({}, agg), {}, (_objectSpread2 = {}, _objectSpread2[groupKey + "." + itemKey] = value, _objectSpread2));
103
- }, {});
104
- toggleFilters(_objectSpread(_objectSpread({}, newFilters), overrides));
105
- };
76
+ const getOnGroupCheck = (value, overrides = {}) => () => {
77
+ const newFilters = groupCheckboxes.reduce((agg, [itemKey]) => ({ ...agg,
78
+ [`${groupKey}.${itemKey}`]: value
79
+ }), {});
80
+ toggleFilters({ ...newFilters,
81
+ ...overrides
82
+ });
106
83
  };
107
84
 
108
85
  return /*#__PURE__*/React.createElement(Dropdown, {
109
86
  label: dropdownLabel,
110
- ariaLabel: groupLabel + ": " + filterSuffix
111
- }, function (_ref4) {
112
- var MenuItem = _ref4.MenuItem,
113
- menu = _ref4.menu,
114
- menuItemClassName = _ref4.menuItemClassName;
87
+ ariaLabel: `${groupLabel}: ${filterSuffix}`
88
+ }, ({
89
+ MenuItem,
90
+ menu,
91
+ menuItemClassName
92
+ }) => {
115
93
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
116
94
  className: css.filterGroupItems
117
- }, groupItems.map(function (_ref5) {
118
- var itemKey = _ref5[0],
119
- itemData = _ref5[1];
120
- var id = [groupKey, itemKey].join('.');
95
+ }, groupItems.map(([itemKey, itemData]) => {
96
+ const id = [groupKey, itemKey].join('.');
121
97
 
122
- var getOnOnlyClick = function getOnOnlyClick() {
123
- var _getOnGroupCheck;
124
-
125
- return getOnGroupCheck(false, (_getOnGroupCheck = {}, _getOnGroupCheck[id] = true, _getOnGroupCheck));
126
- };
98
+ const getOnOnlyClick = () => getOnGroupCheck(false, {
99
+ [id]: true
100
+ });
127
101
 
128
102
  return /*#__PURE__*/React.createElement(MenuItem, _extends({
129
103
  key: id
@@ -164,27 +138,25 @@ FilterGroup.propTypes = {
164
138
  onCheckboxChange: PropTypes.func.isRequired,
165
139
  toggleFilters: PropTypes.func.isRequired
166
140
  };
167
- export var Filters = function Filters(props) {
168
- var className = props.className,
169
- values = props.values,
170
- filters = props.filters,
171
- toggleFilter = props.toggleFilter,
172
- toggleFilters = props.toggleFilters;
173
-
174
- var onCheckboxChange = function onCheckboxChange(_ref6) {
175
- var target = _ref6.target;
176
- return toggleFilter(target.name, target.checked);
177
- };
178
-
179
- var rootClassName = cx(css.root, className);
141
+ export const Filters = props => {
142
+ const {
143
+ className,
144
+ values,
145
+ filters,
146
+ toggleFilter,
147
+ toggleFilters
148
+ } = props;
149
+
150
+ const onCheckboxChange = ({
151
+ target
152
+ }) => toggleFilter(target.name, target.checked);
153
+
154
+ const rootClassName = cx(css.root, className);
180
155
  return /*#__PURE__*/React.createElement("form", {
181
156
  className: rootClassName
182
157
  }, /*#__PURE__*/React.createElement(FlexStack, {
183
158
  className: css.items
184
- }, Object.entries(filters).map(function (_ref7) {
185
- var name = _ref7[0],
186
- data = _ref7[1];
187
-
159
+ }, Object.entries(filters).map(([name, data]) => {
188
160
  if (typeof (data == null ? void 0 : data.defaultValue) !== 'undefined') {
189
161
  return /*#__PURE__*/React.createElement(Filter, {
190
162
  key: name,
@@ -1,122 +1,103 @@
1
1
  import _get from "lodash/get";
2
-
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
4
-
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
-
7
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
-
9
2
  import React, { useCallback, useState } from 'react';
10
3
  import { storiesOf } from '@storybook/react';
11
4
  import { getWrapperDecorator } from '../../stories';
12
5
  import { Filters } from '.';
13
- var stories = storiesOf('UI/Filters', module);
6
+ const stories = storiesOf('UI/Filters', module);
14
7
  stories.addDecorator(getWrapperDecorator({
15
8
  paddingLeft: '200px'
16
9
  }));
17
10
 
18
- var FiltersState = function FiltersState(_ref) {
19
- var children = _ref.children;
20
-
21
- var _useState = useState({
11
+ const FiltersState = ({
12
+ children
13
+ }) => {
14
+ const [values, setValues] = useState({
22
15
  changed: true,
23
16
  'assetType.entrypoint': true
24
- }),
25
- values = _useState[0],
26
- setValues = _useState[1];
27
-
28
- var handleSetValues = useCallback(function (newValues) {
29
- setValues(_objectSpread(_objectSpread({}, values), newValues));
17
+ });
18
+ const handleSetValues = useCallback(newValues => {
19
+ setValues({ ...values,
20
+ ...newValues
21
+ });
30
22
  console.info(newValues);
31
23
  }, [values]);
32
24
  return children(values, handleSetValues);
33
25
  };
34
26
 
35
- stories.add('default', function () {
36
- return /*#__PURE__*/React.createElement(FiltersState, null, function (values, setValues) {
37
- return /*#__PURE__*/React.createElement(Filters, {
38
- onChange: setValues,
39
- filters: {
40
- changed: {
41
- label: 'Changed',
42
- defaultValue: _get(values, 'changed', true)
43
- },
44
- fileTypes: {
45
- label: 'File types',
46
- CSS: {
47
- label: 'CSS',
48
- defaultValue: _get(values, 'fileTypes.CSS', true)
49
- },
50
- JS: {
51
- label: 'JS',
52
- defaultValue: _get(values, 'fileTypes.JS', true)
53
- },
54
- HTML: {
55
- label: 'HTML',
56
- defaultValue: _get(values, 'fileTypes.HTML', true)
57
- },
58
- OTHER: {
59
- label: 'Asset that is not CSS, JS or HTML',
60
- defaultValue: _get(values, 'fileTypes.OTHER', true)
61
- }
62
- }
63
- }
64
- });
65
- });
66
- });
67
- stories.add('overflow', function () {
68
- return /*#__PURE__*/React.createElement(FiltersState, null, function (values, setValues) {
69
- return /*#__PURE__*/React.createElement(Filters, {
70
- onChange: setValues,
71
- filters: {
72
- changed: {
73
- label: 'Changed',
74
- defaultValue: _get(values, 'changed', true)
75
- },
76
- chunks: _objectSpread({
77
- label: 'Chunks'
78
- }, Array(22).fill('').reduce(function (agg, value, currentIndex) {
79
- var _objectSpread2;
80
-
81
- return _objectSpread(_objectSpread({}, agg), {}, (_objectSpread2 = {}, _objectSpread2["chunk-" + currentIndex] = {
82
- label: "Chunk " + (currentIndex + 1),
83
- defaultValue: _get(values, "chunks.chunk-" + currentIndex)
84
- }, _objectSpread2));
85
- }, {}))
86
- }
87
- });
88
- });
89
- });
90
- stories.add('disable options', function () {
91
- return /*#__PURE__*/React.createElement(Filters, {
92
- onChange: function onChange(state) {
93
- console.log(state); // eslint-disable-line no-console
27
+ stories.add('default', () => /*#__PURE__*/React.createElement(FiltersState, null, (values, setValues) => /*#__PURE__*/React.createElement(Filters, {
28
+ onChange: setValues,
29
+ filters: {
30
+ changed: {
31
+ label: 'Changed',
32
+ defaultValue: _get(values, 'changed', true)
94
33
  },
95
- filters: {
96
- changed: {
97
- label: 'Changed',
98
- defaultValue: false,
99
- disabled: true
34
+ fileTypes: {
35
+ label: 'File types',
36
+ CSS: {
37
+ label: 'CSS',
38
+ defaultValue: _get(values, 'fileTypes.CSS', true)
39
+ },
40
+ JS: {
41
+ label: 'JS',
42
+ defaultValue: _get(values, 'fileTypes.JS', true)
100
43
  },
101
- entrypoint: {
102
- label: 'Entrypoint',
103
- defaultValue: false
44
+ HTML: {
45
+ label: 'HTML',
46
+ defaultValue: _get(values, 'fileTypes.HTML', true)
104
47
  },
105
- fileTypes: {
106
- label: 'File types',
107
- CSS: {
108
- label: 'CSS',
109
- defaultValue: true
110
- },
111
- JS: {
112
- label: 'JS',
113
- defaultValue: true
114
- },
115
- HTML: {
116
- label: 'HTML',
117
- defaultValue: true
48
+ OTHER: {
49
+ label: 'Asset that is not CSS, JS or HTML',
50
+ defaultValue: _get(values, 'fileTypes.OTHER', true)
51
+ }
52
+ }
53
+ }
54
+ })));
55
+ stories.add('overflow', () => /*#__PURE__*/React.createElement(FiltersState, null, (values, setValues) => /*#__PURE__*/React.createElement(Filters, {
56
+ onChange: setValues,
57
+ filters: {
58
+ changed: {
59
+ label: 'Changed',
60
+ defaultValue: _get(values, 'changed', true)
61
+ },
62
+ chunks: {
63
+ label: 'Chunks',
64
+ ...Array(22).fill('').reduce((agg, value, currentIndex) => ({ ...agg,
65
+ [`chunk-${currentIndex}`]: {
66
+ label: `Chunk ${currentIndex + 1}`,
67
+ defaultValue: _get(values, `chunks.chunk-${currentIndex}`)
118
68
  }
69
+ }), {})
70
+ }
71
+ }
72
+ })));
73
+ stories.add('disable options', () => /*#__PURE__*/React.createElement(Filters, {
74
+ onChange: state => {
75
+ console.log(state); // eslint-disable-line no-console
76
+ },
77
+ filters: {
78
+ changed: {
79
+ label: 'Changed',
80
+ defaultValue: false,
81
+ disabled: true
82
+ },
83
+ entrypoint: {
84
+ label: 'Entrypoint',
85
+ defaultValue: false
86
+ },
87
+ fileTypes: {
88
+ label: 'File types',
89
+ CSS: {
90
+ label: 'CSS',
91
+ defaultValue: true
92
+ },
93
+ JS: {
94
+ label: 'JS',
95
+ defaultValue: true
96
+ },
97
+ HTML: {
98
+ label: 'HTML',
99
+ defaultValue: true
119
100
  }
120
101
  }
121
- });
122
- });
102
+ }
103
+ }));
@@ -1,7 +1,7 @@
1
- var FILTER_SUFFIX_MAX_LENGTH = 18;
2
- var ELLIPSES = '...';
3
- var JOIN = ', ';
4
- export var LABELS = {
1
+ const FILTER_SUFFIX_MAX_LENGTH = 18;
2
+ const ELLIPSES = '...';
3
+ const JOIN = ', ';
4
+ export const LABELS = {
5
5
  NONE: 'none',
6
6
  ALL: 'all'
7
7
  };
@@ -10,15 +10,13 @@ export var LABELS = {
10
10
  * @return {String}
11
11
  */
12
12
 
13
- export var getGroupFiltersLabelSuffix = function getGroupFiltersLabelSuffix(filters) {
14
- var filterCount = filters.length; // eslint-disable-next-line no-unused-vars
13
+ export const getGroupFiltersLabelSuffix = filters => {
14
+ const filterCount = filters.length; // eslint-disable-next-line no-unused-vars
15
15
 
16
- var checkedFilters = filters.filter(function (_ref) {
17
- var _ = _ref[0],
18
- defaultValue = _ref[1].defaultValue;
19
- return defaultValue;
20
- });
21
- var filterCheckedCount = checkedFilters.length;
16
+ const checkedFilters = filters.filter(([_, {
17
+ defaultValue
18
+ }]) => defaultValue);
19
+ const filterCheckedCount = checkedFilters.length;
22
20
 
23
21
  if (filterCheckedCount === 0) {
24
22
  return LABELS.NONE;
@@ -29,38 +27,36 @@ export var getGroupFiltersLabelSuffix = function getGroupFiltersLabelSuffix(filt
29
27
  } // eslint-disable-next-line no-unused-vars
30
28
 
31
29
 
32
- var checkedFilterLabels = checkedFilters.map(function (_ref2) {
33
- var _ = _ref2[0],
34
- label = _ref2[1].label;
35
- return label;
36
- });
37
- var suffix = '';
38
- var inlinedLabelCount = 0;
39
- var done = false;
30
+ const checkedFilterLabels = checkedFilters.map(([_, {
31
+ label
32
+ }]) => label);
33
+ let suffix = '';
34
+ let inlinedLabelCount = 0;
35
+ let done = false;
40
36
 
41
- for (var i = 0; !done && i < checkedFilterLabels.length && FILTER_SUFFIX_MAX_LENGTH - suffix.length >= 0; i++ // eslint-disable-line no-plusplus
37
+ for (let i = 0; !done && i < checkedFilterLabels.length && FILTER_SUFFIX_MAX_LENGTH - suffix.length >= 0; i++ // eslint-disable-line no-plusplus
42
38
  ) {
43
- var availableSpace = FILTER_SUFFIX_MAX_LENGTH - suffix.length;
44
- var label = checkedFilterLabels[i];
45
- var normalizedLabel = '';
39
+ const availableSpace = FILTER_SUFFIX_MAX_LENGTH - suffix.length;
40
+ const label = checkedFilterLabels[i];
41
+ let normalizedLabel = '';
46
42
 
47
43
  if (availableSpace - label.length >= 0) {
48
44
  // Label is fitting in the available space
49
45
  normalizedLabel = label;
50
46
  } else if (availableSpace >= 6) {
51
47
  // Available space is allowing crop
52
- normalizedLabel = "" + label.substr(0, availableSpace - 3) + ELLIPSES;
48
+ normalizedLabel = `${label.substr(0, availableSpace - 3)}${ELLIPSES}`;
53
49
  } else {// noop - the label will not fit
54
50
  }
55
51
 
56
52
  if (normalizedLabel) {
57
- suffix = "" + suffix + (suffix ? JOIN : '') + normalizedLabel;
53
+ suffix = `${suffix}${suffix ? JOIN : ''}${normalizedLabel}`;
58
54
  inlinedLabelCount = i + 1;
59
55
  } else {
60
56
  done = true;
61
57
  }
62
58
  }
63
59
 
64
- var skippedLabels = filterCheckedCount - inlinedLabelCount;
65
- return "" + suffix + (skippedLabels > 0 ? " +" + skippedLabels : '');
60
+ const skippedLabels = filterCheckedCount - inlinedLabelCount;
61
+ return `${suffix}${skippedLabels > 0 ? ` +${skippedLabels}` : ''}`;
66
62
  };
@@ -1,3 +1,3 @@
1
1
  import { filtersDropdownContainer } from './filters.container';
2
2
  import { Filters as FiltersComponent } from './filters';
3
- export var Filters = filtersDropdownContainer(FiltersComponent);
3
+ export const Filters = filtersDropdownContainer(FiltersComponent);