@bundle-stats/ui 4.13.0-beta.15 → 4.13.0-beta.17

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 (87) hide show
  1. package/lib/assets/icons.svg +70 -67
  2. package/lib/assets/icons.svg.js +14 -12
  3. package/lib/assets/icons.svg.js.map +1 -1
  4. package/lib/components/bundle-assets/bundle-assets.js +39 -7
  5. package/lib/components/bundle-assets/bundle-assets.js.map +1 -1
  6. package/lib/components/bundle-assets-totals/bundle-assets-totals.js +4 -4
  7. package/lib/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
  8. package/lib/components/bundle-modules/bundle-modules.js +28 -7
  9. package/lib/components/bundle-modules/bundle-modules.js.map +1 -1
  10. package/lib/components/bundle-packages/bundle-packages.js +39 -7
  11. package/lib/components/bundle-packages/bundle-packages.js.map +1 -1
  12. package/lib/components/delta/delta.module.css +10 -1
  13. package/lib/components/metrics-display-selector/metrics-display-selector.js +41 -4
  14. package/lib/components/metrics-display-selector/metrics-display-selector.js.map +1 -1
  15. package/lib/components/metrics-display-selector/metrics-display-selector.module.css +15 -7
  16. package/lib/components/metrics-treemap/index.js +4 -0
  17. package/lib/components/metrics-treemap/index.js.map +1 -1
  18. package/lib/components/metrics-treemap/metrics-treemap.constants.js +3 -0
  19. package/lib/components/metrics-treemap/metrics-treemap.constants.js.map +1 -0
  20. package/lib/components/metrics-treemap/metrics-treemap.js +57 -38
  21. package/lib/components/metrics-treemap/metrics-treemap.js.map +1 -1
  22. package/lib/components/metrics-treemap/metrics-treemap.module.css +55 -25
  23. package/lib/components/metrics-treemap/metrics-treemap.utils.js +70 -0
  24. package/lib/components/metrics-treemap/metrics-treemap.utils.js.map +1 -0
  25. package/lib/components/run-info/run-info.module.css +7 -7
  26. package/lib/hooks/metrics-display-type.js +56 -24
  27. package/lib/hooks/metrics-display-type.js.map +1 -1
  28. package/lib/ui/icon/icon.js +1 -0
  29. package/lib/ui/icon/icon.js.map +1 -1
  30. package/lib-esm/assets/icons.svg +70 -67
  31. package/lib-esm/assets/icons.svg.js +14 -12
  32. package/lib-esm/assets/icons.svg.js.map +1 -1
  33. package/lib-esm/components/bundle-assets/bundle-assets.js +40 -8
  34. package/lib-esm/components/bundle-assets/bundle-assets.js.map +1 -1
  35. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js +5 -5
  36. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
  37. package/lib-esm/components/bundle-modules/bundle-modules.js +29 -8
  38. package/lib-esm/components/bundle-modules/bundle-modules.js.map +1 -1
  39. package/lib-esm/components/bundle-packages/bundle-packages.js +40 -8
  40. package/lib-esm/components/bundle-packages/bundle-packages.js.map +1 -1
  41. package/lib-esm/components/delta/delta.module.css +10 -1
  42. package/lib-esm/components/metrics-display-selector/metrics-display-selector.js +41 -4
  43. package/lib-esm/components/metrics-display-selector/metrics-display-selector.js.map +1 -1
  44. package/lib-esm/components/metrics-display-selector/metrics-display-selector.module.css +15 -7
  45. package/lib-esm/components/metrics-treemap/index.js +1 -0
  46. package/lib-esm/components/metrics-treemap/index.js.map +1 -1
  47. package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js +2 -0
  48. package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js.map +1 -0
  49. package/lib-esm/components/metrics-treemap/metrics-treemap.js +58 -39
  50. package/lib-esm/components/metrics-treemap/metrics-treemap.js.map +1 -1
  51. package/lib-esm/components/metrics-treemap/metrics-treemap.module.css +55 -25
  52. package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js +65 -0
  53. package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js.map +1 -0
  54. package/lib-esm/components/run-info/run-info.module.css +7 -7
  55. package/lib-esm/hooks/metrics-display-type.js +57 -24
  56. package/lib-esm/hooks/metrics-display-type.js.map +1 -1
  57. package/lib-esm/ui/icon/icon.js +1 -0
  58. package/lib-esm/ui/icon/icon.js.map +1 -1
  59. package/package.json +8 -8
  60. package/src/assets/icons/check.svg +4 -0
  61. package/src/assets/icons.svg +70 -67
  62. package/src/assets/icons.svg.jsx +12 -12
  63. package/src/components/bundle-assets/bundle-assets.jsx +76 -20
  64. package/src/components/bundle-assets-totals/bundle-assets-totals.jsx +5 -4
  65. package/src/components/bundle-modules/bundle-modules.tsx +76 -16
  66. package/src/components/bundle-packages/bundle-packages.jsx +71 -16
  67. package/src/components/delta/delta.module.css +10 -1
  68. package/src/components/metrics-display-selector/metrics-display-selector.module.css +15 -7
  69. package/src/components/metrics-display-selector/metrics-display-selector.stories.tsx +33 -0
  70. package/src/components/metrics-display-selector/metrics-display-selector.tsx +83 -25
  71. package/src/components/metrics-treemap/__tests__/metrics-treemap.utils.ts +143 -0
  72. package/src/components/metrics-treemap/index.ts +1 -0
  73. package/src/components/metrics-treemap/metrics-treemap.constants.ts +43 -0
  74. package/src/components/metrics-treemap/metrics-treemap.module.css +55 -25
  75. package/src/components/metrics-treemap/metrics-treemap.stories.tsx +44 -10
  76. package/src/components/metrics-treemap/metrics-treemap.tsx +247 -84
  77. package/src/components/metrics-treemap/metrics-treemap.utils.ts +107 -0
  78. package/src/components/run-info/run-info.module.css +7 -7
  79. package/src/hooks/metrics-display-type.ts +87 -29
  80. package/src/ui/icon/icon.tsx +1 -0
  81. package/types/components/metrics-display-selector/metrics-display-selector.d.ts +3 -1
  82. package/types/components/metrics-treemap/index.d.ts +1 -0
  83. package/types/components/metrics-treemap/metrics-treemap.constants.d.ts +15 -0
  84. package/types/components/metrics-treemap/metrics-treemap.d.ts +7 -5
  85. package/types/components/metrics-treemap/metrics-treemap.utils.d.ts +4 -0
  86. package/types/hooks/metrics-display-type.d.ts +8 -2
  87. package/types/ui/icon/icon.d.ts +2 -0
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useCallback, useMemo, useRef } from 'react';
1
+ import React, { forwardRef, useCallback, useMemo, useRef, } from 'react';
2
2
  import { useDebounce, useHoverDirty, useMeasure, useMouseHovered } from 'react-use';
3
3
  import cx from 'classnames';
4
4
  import { hierarchy, treemap, treemapSquarify } from 'd3';
@@ -9,8 +9,9 @@ import { Delta } from '../delta';
9
9
  import { RunInfo } from '../run-info';
10
10
  import css from './metrics-treemap.module.css';
11
11
  const SQUARIFY_RATIO = 1.33;
12
- const PADDING_OUTER = 0;
12
+ const PADDING_OUTER = 2;
13
13
  const PADDING_INNER = 2;
14
+ const GROUPED_PADDING_TOP = 16;
14
15
  const PADDING_TOP = 4;
15
16
  const PADDING_BOTTOM = 2;
16
17
  const PADDING_LEFT = 16;
@@ -18,6 +19,15 @@ const PADDING_RIGHT = 4;
18
19
  const VERTICAL_SPACING = 4;
19
20
  const LINE_HEIGHT = 16;
20
21
  const LINE_HEIGHT_SMALL = 13.3;
22
+ function resolveTileGroupSizeDisplay(width, height) {
23
+ if (height < GROUPED_PADDING_TOP || width < 24) {
24
+ return 'minimal';
25
+ }
26
+ if (height < GROUPED_PADDING_TOP + 8) {
27
+ return 'small';
28
+ }
29
+ return 'default';
30
+ }
21
31
  function resolveTileSizeDisplay(width, height) {
22
32
  if (height > PADDING_TOP + PADDING_BOTTOM + VERTICAL_SPACING + LINE_HEIGHT * 2 &&
23
33
  width > PADDING_LEFT + PADDING_RIGHT + 128) {
@@ -44,10 +54,10 @@ const TileContent = forwardRef((props, ref) => {
44
54
  return React.createElement("div", { className: css.tileContent, ref: ref });
45
55
  }
46
56
  return (React.createElement("div", { className: css.tileContent, ref: ref },
47
- React.createElement(FileName, { as: "p", className: css.leadContentLabel, name: item.label }),
48
- sizeDisplay !== 'small' && (React.createElement("p", { className: css.leadContentValue },
49
- React.createElement("span", { className: css.leadContentMetric }, runInfo.displayValue),
50
- React.createElement(Delta, { className: css.leadContentDelta, displayValue: runInfo.displayDeltaPercentage, deltaType: runInfo.deltaType })))));
57
+ React.createElement(FileName, { as: "p", className: css.tileContentLabel, name: item.label }),
58
+ sizeDisplay !== 'small' && (React.createElement("p", { className: css.tileContentValue },
59
+ React.createElement("span", { className: css.tileContentMetric }, runInfo.displayValue),
60
+ React.createElement(Delta, { className: css.tileContentDelta, displayValue: runInfo.displayDeltaPercentage, deltaType: runInfo.deltaType })))));
51
61
  });
52
62
  const TileContentWithTooltip = (props) => {
53
63
  const { sizeDisplay, item, runInfo, parentRef } = props;
@@ -80,56 +90,65 @@ const Tile = (props) => {
80
90
  const { item } = data;
81
91
  const runInfo = (_a = item.runs) === null || _a === void 0 ? void 0 : _a[0];
82
92
  const sizeDisplay = useMemo(() => resolveTileSizeDisplay(width, height), [width, height]);
83
- const handleOnClick = useCallback(() => onClick === null || onClick === void 0 ? void 0 : onClick(item.key), [item.key, onClick]);
93
+ const handleOnClick = useCallback((event) => {
94
+ event.stopPropagation();
95
+ onClick === null || onClick === void 0 ? void 0 : onClick(item.key);
96
+ }, [item.key, onClick]);
84
97
  const contentRef = useRef(null);
85
98
  const hover = useHoverDirty(contentRef);
86
- const className = cx(css.tile, css[`tile-${runInfo.deltaType}`], sizeDisplay === 'small' && css.tileSmall, left === 0 && css.tileFirstCol);
99
+ const className = cx(css.tile, css[`tile-${runInfo.deltaType}`], sizeDisplay === 'small' && css.tileSizeSmall, sizeDisplay === 'default' && css.tileSizeDefault, left === 0 && css.tileFirstCol);
87
100
  return (React.createElement("button", { type: "button", onClick: handleOnClick, ref: contentRef, style: { left, top, width, height }, className: className }, hover ? (React.createElement(TileContentWithTooltip, { sizeDisplay: sizeDisplay, item: item, runInfo: runInfo, parentRef: contentRef })) : (React.createElement(TileContent, { sizeDisplay: sizeDisplay, item: item, runInfo: runInfo }))));
88
101
  };
102
+ const TileGroup = (props) => {
103
+ const { title = '', id, childNodes, onItemClick, onGroupClick, left, top, width, height, absoluteLeft, absoluteTop, } = props;
104
+ const onClick = useCallback((event) => {
105
+ onGroupClick === null || onGroupClick === void 0 ? void 0 : onGroupClick(id);
106
+ event.stopPropagation();
107
+ }, [onGroupClick, id]);
108
+ const displaySize = useMemo(() => resolveTileGroupSizeDisplay(width || 0, height || 0), [width, height]);
109
+ if (title && displaySize === 'minimal') {
110
+ return (React.createElement("div", { onClick: onClick, role: "button", "aria-label": "View children entries", className: css.tileGroup, style: { left, top, width, height } }));
111
+ }
112
+ if (title && displaySize === 'small') {
113
+ return (React.createElement("div", { onClick: onClick, role: "button", "aria-label": "View children entries", style: { left, top, width, height }, className: css.tileGroup },
114
+ React.createElement("div", { className: css.tileGroupTitle }, title)));
115
+ }
116
+ return (React.createElement("div", { onClick: onClick, role: "button", "aria-label": "View children entries", className: cx(css.tileGroup, css.tileGroupSizeDefault), style: { left, top, width, height } },
117
+ title && React.createElement("div", { className: css.tileGroupTitle }, title), childNodes === null || childNodes === void 0 ? void 0 :
118
+ childNodes.map((childNode) => {
119
+ if ('children' in childNode) {
120
+ return (React.createElement(TileGroup, { title: childNode.data.label, id: childNode.data.id, childNodes: childNode.children, left: childNode.x0 - absoluteLeft, top: childNode.y0 - absoluteTop, absoluteLeft: childNode.x0, absoluteTop: childNode.y0, width: childNode.x1 - childNode.x0, height: childNode.y1 - childNode.y0, onItemClick: onItemClick, onGroupClick: onGroupClick, key: childNode.data.id }));
121
+ }
122
+ return (React.createElement(Tile, { data: childNode.data, left: childNode.x0 - absoluteLeft, top: childNode.y0 - absoluteTop, width: childNode.x1 - childNode.x0, height: childNode.y1 - childNode.y0, onClick: onItemClick, key: childNode.data.id }));
123
+ })));
124
+ };
89
125
  function useMetricsTreemapHierarchy(params) {
90
- const { items, width, height } = params;
126
+ const { treeNodes, width, height, nested } = params;
91
127
  const treemapHierarchy = useMemo(() => {
92
- const children = items.map((item) => {
93
- const values = item.runs.map((run) => (run === null || run === void 0 ? void 0 : run.value) || 0);
94
- const value = Math.max(...values);
95
- return {
96
- id: item.key,
97
- value,
98
- item,
99
- };
100
- });
101
- const treemapData = {
102
- id: 'root',
103
- name: 'root',
104
- value: 0,
105
- children,
106
- };
107
- const customHierarchy = hierarchy(treemapData);
128
+ const customHierarchy = hierarchy(treeNodes);
108
129
  customHierarchy.sum((node) => node.value);
109
130
  customHierarchy.sort((a, b) => b.value - a.value);
110
131
  return customHierarchy;
111
- }, [items]);
112
- const tiles = useMemo(() => {
113
- const createTremapLayout = treemap()
132
+ }, [treeNodes]);
133
+ const treemapNodes = useMemo(() => {
134
+ let createTremapLayout = treemap()
114
135
  .size([width, height])
115
136
  .tile(treemapSquarify.ratio(SQUARIFY_RATIO))
116
137
  .paddingOuter(PADDING_OUTER)
117
138
  .paddingInner(PADDING_INNER);
118
- const tremapLayout = createTremapLayout(treemapHierarchy);
119
- return tremapLayout.leaves().filter((tile) => Boolean(tile.parent));
139
+ if (nested) {
140
+ createTremapLayout = createTremapLayout.paddingTop(GROUPED_PADDING_TOP);
141
+ }
142
+ return createTremapLayout(treemapHierarchy);
120
143
  }, [height, width, treemapHierarchy]);
121
- return tiles;
144
+ return treemapNodes;
122
145
  }
123
146
  export const MetricsTreemap = (props) => {
124
- const { className = '', items, onItemClick, emptyMessage = 'No data', ...restProps } = props;
147
+ const { className = '', treeNodes, onItemClick, onGroupClick, emptyMessage = 'No data', nested = false, ...restProps } = props;
125
148
  const [containerRef, { width, height }] = useMeasure();
126
- const tiles = useMetricsTreemapHierarchy({ items, width, height });
127
- return (React.createElement("div", { className: cx(css.root, className), ...restProps, ref: containerRef }, tiles.length > 0 ? (React.createElement("div", { className: css.canvas }, tiles.map((tile) => {
128
- if (!tile.parent) {
129
- return null;
130
- }
131
- return (React.createElement(Tile, { data: tile.data, left: tile.x0, top: tile.y0, width: tile.x1 - tile.x0, height: tile.y1 - tile.y0, onClick: onItemClick, key: tile.id }));
132
- }))) : (React.createElement("div", { className: css.emptyMessage },
149
+ const rootNode = useMetricsTreemapHierarchy({ treeNodes, width, height, nested });
150
+ return (React.createElement("div", { className: cx(css.root, nested && css.nested, className), ...restProps, ref: containerRef }, rootNode.children && rootNode.children.length > 0 ? (React.createElement("div", { className: css.canvas },
151
+ React.createElement(TileGroup, { title: nested ? rootNode.data.label : undefined, id: rootNode.data.id, childNodes: rootNode.children, onItemClick: onItemClick, onGroupClick: onGroupClick, left: rootNode.x0, top: rootNode.y0, absoluteLeft: rootNode.x0, absoluteTop: rootNode.y0, width: rootNode.x1 - rootNode.x0, height: rootNode.y1 - rootNode.y0 }))) : (React.createElement("div", { className: css.emptyMessage },
133
152
  React.createElement("div", { className: css.emptyMessageWrapper }, emptyMessage)))));
134
153
  };
135
154
  //# sourceMappingURL=metrics-treemap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-treemap.js","sourceRoot":"","sources":["../../../src/components/metrics-treemap/metrics-treemap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAa,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,GAAG,MAAM,8BAA8B,CAAC;AAE/C,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAQxB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,SAAS,sBAAsB,CAAC,KAAa,EAAE,MAAc;IAC3D,IACE,MAAM,GAAG,WAAW,GAAG,cAAc,GAAG,gBAAgB,GAAG,WAAW,GAAG,CAAC;QAC1E,KAAK,GAAG,YAAY,GAAG,aAAa,GAAG,GAAG,EAC1C;QACA,OAAO,SAAS,CAAC;KAClB;IAED,IACE,MAAM,GAAG,WAAW,GAAG,cAAc,GAAG,iBAAiB,GAAG,CAAC;QAC7D,KAAK,GAAG,YAAY,GAAG,cAAc,GAAG,EAAE,EAC1C;QACA,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAMD,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAE,EAAE;IAC5D,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAkB,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAA0B,CAAC;IAE7E,OAAO,CACL,oBAAC,KAAK,IAAC,KAAK,EAAC,OAAO,EAAC,SAAS,EAAE,GAAG,CAAC,kBAAkB;QACpD,4BAAI,SAAS,EAAE,GAAG,CAAC,uBAAuB;YACxC,oBAAC,QAAQ,IAAC,EAAE,EAAC,MAAM,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAI,CACrC;QACL,oBAAC,OAAO,IACN,OAAO,EAAE,UAAU,CAAC,YAAY,EAChC,KAAK,EAAE,UAAU,CAAC,sBAAsB,EACxC,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,QAAQ,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,KAAI,IAAI,GAC3C,CACI,CACT,CAAC;AACJ,CAAC,CAAC;AAQF,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,KAAuB,EAAE,GAA8B,EAAE,EAAE;IACzF,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE7C,IAAI,WAAW,KAAK,SAAS,EAAE;QAC7B,OAAO,6BAAK,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,GAAI,CAAC;KACtD;IAED,OAAO,CACL,6BAAK,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG;QACvC,oBAAC,QAAQ,IAAC,EAAE,EAAC,GAAG,EAAC,SAAS,EAAE,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,GAAI;QACrE,WAAW,KAAK,OAAO,IAAI,CAC1B,2BAAG,SAAS,EAAE,GAAG,CAAC,gBAAgB;YAChC,8BAAM,SAAS,EAAE,GAAG,CAAC,iBAAiB,IAAG,OAAO,CAAC,YAAY,CAAQ;YACrE,oBAAC,KAAK,IACJ,SAAS,EAAE,GAAG,CAAC,gBAAgB,EAC/B,YAAY,EAAE,OAAO,CAAC,sBAAsB,EAC5C,SAAS,EAAE,OAAO,CAAC,SAAS,GAC5B,CACA,CACL,CACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,KAA2D,EAAE,EAAE;IAC7F,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAExD,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAGlE,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;;QAErC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE;YACtF,OAAO,IAAI,CAAC;SACb;QAED,MAAM,OAAO,GAAG;YACd,CAAC,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,0CAAE,OAAO,mCAAI,CAAC,CAAC;YACvD,CAAC,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,0CAAE,OAAO,mCAAI,CAAC,CAAC;YACvD,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjC,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAGlF,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAElE,OAAO,CACL;QACE,oBAAC,aAAa,IAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,CAAC,wBAAwB;YACzE,oBAAC,WAAW,IAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI,CACzD;QAChB,oBAAC,OAAO,IAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO;YAClD,oBAAC,YAAY,IAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,gBAAgB,GAAI;YAChF,oBAAC,kBAAkB,IAAC,IAAI,EAAE,IAAI,GAAI,CAC1B,CACT,CACJ,CAAC;AACJ,CAAC,CAAC;AAwBF,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAE,EAAE;;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE1D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtB,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,IAAI,0CAAG,CAAC,CAAkB,CAAC;IAEhD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1F,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAElF,MAAM,UAAU,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,EAAE,CAClB,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC,EAChC,WAAW,KAAK,OAAO,IAAI,GAAG,CAAC,SAAS,EACxC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAC/B,CAAC;IAEF,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EACnC,SAAS,EAAE,SAAS,IAEnB,KAAK,CAAC,CAAC,CAAC,CACP,oBAAC,sBAAsB,IACrB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,UAAU,GACrB,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,WAAW,IAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI,CACxE,CACM,CACV,CAAC;AACJ,CAAC,CAAC;AAQF,SAAS,0BAA0B,CAAC,MAAwC;IAC1E,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAExC,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAKlC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,KAAI,CAAC,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAElC,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,GAAG;gBACZ,KAAK;gBACL,IAAI;aACL,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC;YACR,QAAQ;SACT,CAAC;QAEF,MAAM,eAAe,GAAG,SAAS,CAAW,WAAW,CAAC,CAAC;QACzD,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1C,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAElD,OAAO,eAAe,CAAC;IACzB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,kBAAkB,GAAG,OAAO,EAAE;aACjC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACrB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;aAC3C,YAAY,CAAC,aAAa,CAAC;aAC3B,YAAY,CAAC,aAAa,CAAC,CAAC;QAE/B,MAAM,YAAY,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QAE1D,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEtC,OAAO,KAAK,CAAC;AACf,CAAC;AAQD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAwD,EAAE,EAAE;IACzF,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAE7F,MAAM,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,UAAU,EAAkB,CAAC;IACvE,MAAM,KAAK,GAAG,0BAA0B,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnE,OAAO,CACL,6BAAK,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,KAAM,SAAS,EAAE,GAAG,EAAE,YAAY,IACtE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,6BAAK,SAAS,EAAE,GAAG,CAAC,MAAM,IACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,oBAAC,IAAI,IACH,IAAI,EAAE,IAAI,CAAC,IAAgB,EAC3B,IAAI,EAAE,IAAI,CAAC,EAAE,EACb,GAAG,EAAE,IAAI,CAAC,EAAE,EACZ,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EACxB,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EACzB,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,IAAI,CAAC,EAAE,GACZ,CACH,CAAC;IACJ,CAAC,CAAC,CACE,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAE,GAAG,CAAC,YAAY;QAC9B,6BAAK,SAAS,EAAE,GAAG,CAAC,mBAAmB,IAAG,YAAY,CAAO,CACzD,CACP,CACG,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"metrics-treemap.js","sourceRoot":"","sources":["../../../src/components/metrics-treemap/metrics-treemap.tsx"],"names":[],"mappings":"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"}
@@ -13,15 +13,44 @@
13
13
  top: 0;
14
14
  width: 100%;
15
15
  height: 100%;
16
- fill: var(--color-text);
17
- font-family: var(--font-family);
18
16
  background: var(--color-background);
19
17
  }
20
18
 
21
- /** Tile overlay fill background transition */
22
- .root {
23
- transition: var(--ui-transition-out);
24
- transition-property: opacity;
19
+ /**
20
+ * Tile group
21
+ */
22
+ .tileGroup {
23
+ position: absolute;
24
+ }
25
+
26
+ .tileGroupTitle {
27
+ width: 100%;
28
+ padding: 2px var(--space-xxxsmall);
29
+ color: var(--color-text);
30
+ font-size: 10px;
31
+ line-height: 1em;
32
+ overflow: hidden;
33
+ white-space: nowrap;
34
+ text-overflow: ellipsis;
35
+ }
36
+
37
+ /** Tile group size variation */
38
+ .tileGroupSizeDefault {
39
+ transition: var(--ui-transition-in);
40
+ transition-property: left top width height;
41
+ }
42
+
43
+ /** Tile group nested variation */
44
+ .nested .tileGroup {
45
+ background: rgba(128, 128, 128, 0.05);
46
+ }
47
+
48
+ .nested .tileGroup:hover {
49
+ background: rgba(128, 128, 128, 0.08);
50
+ }
51
+
52
+ .nested .tileGroup:hover .tileGroupTitle {
53
+ color: var(--color-text-dark);
25
54
  }
26
55
 
27
56
  /** Leaf wrapper button */
@@ -31,7 +60,7 @@
31
60
  border: 0;
32
61
  border-radius: 0;
33
62
  padding: 0;
34
- background: none;
63
+ background: var(--color-background);
35
64
  display: flex;
36
65
  align-items: center;
37
66
  font-family: var(--font-family-fixed);
@@ -57,12 +86,9 @@
57
86
  opacity: 0.75;
58
87
  }
59
88
 
60
- .tile:hover {
61
- transition: var(--ui-transition-in);
62
- }
63
-
64
89
  .tile:hover::before {
65
90
  transition: var(--ui-transition-in);
91
+ transition-property: opacity;
66
92
  opacity: 0.5;
67
93
  }
68
94
 
@@ -84,7 +110,7 @@
84
110
  padding-left: var(--space-small);
85
111
  }
86
112
 
87
- .leadContentLabel {
113
+ .tileContentLabel {
88
114
  flex: 0 1 auto;
89
115
  width: 100%;
90
116
  min-width: 0;
@@ -92,32 +118,37 @@
92
118
  overflow: hidden;
93
119
  }
94
120
 
95
- .leadContentValue {
121
+ .tileContentValue {
96
122
  flex: 0 0 auto;
97
123
  max-width: calc(100% + var(--space-xxsmall));
98
124
  white-space: nowrap;
99
125
  overflow: hidden;
100
126
  }
101
127
 
102
- .leadContentMetric {
128
+ .tileContentMetric {
103
129
  font-weight: bold;
104
130
  }
105
131
 
106
- .leadContentDelta {
132
+ .tileContentDelta {
107
133
  margin-left: var(--space-xxxsmall);
108
134
  }
109
135
 
110
136
  /** Tile size variation */
111
- .tileSmall .tileContent {
137
+ .tileSizeSmall .tileContent {
112
138
  padding: var(--space-xxxsmall) var(--space-xxsmall);
113
139
  gap: 0;
114
140
  font-size: var(--size-xsmall);
115
141
  }
116
142
 
117
- .tileSmall .leadContentLabel {
143
+ .tileSizeSmall .tileContentLabel {
118
144
  margin-top: 0;
119
145
  }
120
146
 
147
+ .tileSizeDefault {
148
+ transition: var(--ui-transition-in);
149
+ transition-property: left top width height;
150
+ }
151
+
121
152
  /** Tile diff variation */
122
153
  .tile-NO_CHANGE {
123
154
  color: var(--color-text-light);
@@ -125,7 +156,7 @@
125
156
 
126
157
  .tile-NO_CHANGE::before {
127
158
  color: var(--color-gray-50);
128
- opacity: 0.4;
159
+ opacity: 0.3;
129
160
  }
130
161
 
131
162
  .tile-NO_CHANGE:hover::before {
@@ -193,17 +224,16 @@
193
224
  pointer-events: none;
194
225
  }
195
226
 
196
- /* prevent tooltip portal wrapper from capturing events */
197
- div[role="presentation"]:has(.tooltip) {
198
- pointer-events: none;
199
- }
200
-
201
-
202
227
  .tileTooltipArrow svg {
203
228
  display: block;
204
229
  fill: var(--color-background) !important;
205
230
  }
206
231
 
207
232
  .tileTooltipContentTitle {
208
- font-size: var(--size-medium);
233
+ font-size: var(--size-small);
234
+ }
235
+
236
+ /* prevent tooltip portal wrapper from capturing events */
237
+ div[role="presentation"]:has(.tooltip) {
238
+ pointer-events: none;
209
239
  }
@@ -0,0 +1,65 @@
1
+ const ROOT_LABEL = '(root)';
2
+ function getReportMetricRowMaxValue(item) {
3
+ const values = item.runs.map((run) => (run === null || run === void 0 ? void 0 : run.value) || 0);
4
+ return Math.max(...values);
5
+ }
6
+ export function getTreemapNodes(items) {
7
+ const rootChildren = items.map((item) => ({
8
+ id: item.key,
9
+ label: item.key,
10
+ value: getReportMetricRowMaxValue(item),
11
+ item,
12
+ }));
13
+ return {
14
+ id: '',
15
+ label: ROOT_LABEL,
16
+ value: 0,
17
+ children: rootChildren,
18
+ };
19
+ }
20
+ function setTreeNode(nodes, slugs, currentSlugId, newNode) {
21
+ const baseSlugs = slugs.slice(0, currentSlugId);
22
+ const [currentSlug, ...restSlug] = slugs.slice(currentSlugId);
23
+ if (!currentSlug) {
24
+ nodes.push(newNode);
25
+ return;
26
+ }
27
+ const currentNodePath = [...baseSlugs, currentSlug].join('/');
28
+ let parentNode = nodes.find((treeNode) => treeNode.id === currentNodePath);
29
+ if (!parentNode) {
30
+ parentNode = {
31
+ id: currentNodePath,
32
+ label: currentSlug,
33
+ value: 0,
34
+ children: [],
35
+ };
36
+ nodes.push(parentNode);
37
+ }
38
+ if (restSlug.length === 0) {
39
+ parentNode.children.push(newNode);
40
+ return;
41
+ }
42
+ setTreeNode(parentNode.children, slugs, currentSlugId + 1, newNode);
43
+ }
44
+ export function getTreemapNodesGroupedByPath(items) {
45
+ const treeNodes = [];
46
+ items.forEach((item) => {
47
+ const slugs = item.key.split('/');
48
+ const baseSlugs = slugs.slice(0, -1);
49
+ const baseName = slugs.slice(-1)[0];
50
+ const treeNode = {
51
+ id: item.key,
52
+ label: baseName,
53
+ value: getReportMetricRowMaxValue(item),
54
+ item,
55
+ };
56
+ setTreeNode(treeNodes, baseSlugs, 0, treeNode);
57
+ });
58
+ return {
59
+ id: '',
60
+ label: ROOT_LABEL,
61
+ value: 0,
62
+ children: treeNodes,
63
+ };
64
+ }
65
+ //# sourceMappingURL=metrics-treemap.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-treemap.utils.js","sourceRoot":"","sources":["../../../src/components/metrics-treemap/metrics-treemap.utils.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,10 @@
31
31
  font-weight: bold;
32
32
  }
33
33
 
34
+ .delta {
35
+ font-weight: normal;
36
+ }
37
+
34
38
  .deltaValue + .deltaValue::before {
35
39
  margin-left: calc(var(--space-xxxsmall) / 2);
36
40
  margin-right: calc(var(--space-xxxsmall) / 2);
@@ -72,17 +76,13 @@
72
76
 
73
77
  /* Size variation */
74
78
  .small .currentMetric {
75
- font-size: var(--size-large);
79
+ font-size: var(--size-medium);
76
80
  }
77
81
 
78
82
  .large .currentMetric {
79
- font-size: var(--size-xxxlarge);
83
+ font-size: var(--size-xxlarge);
80
84
  }
81
85
 
82
86
  .large .baselineMetric {
83
- font-size: var(--size-medium);
84
- }
85
-
86
- .large .delta {
87
- margin-left: var(--space-xxxsmall);
87
+ font-size: var(--size-small);
88
88
  }
@@ -2,35 +2,68 @@ import { useCallback, useEffect, useMemo } from 'react';
2
2
  import { useLocalStorage } from 'react-use';
3
3
  import { StringParam, useQueryParams } from 'use-query-params';
4
4
  import { MetricsDisplayType } from '../constants';
5
- const DEFAULT_DISPLAY_TYPE = MetricsDisplayType.TABLE;
6
- const PARAM_NAME = 'dt';
7
- export const useMetricsDisplayType = () => {
8
- const [{ [PARAM_NAME]: queryDisplayType }, setQueryParams] = useQueryParams({
9
- [PARAM_NAME]: StringParam,
5
+ const DEFAULT_VALUE = MetricsDisplayType.TABLE;
6
+ const DEFAULT_GROUP_BY = '';
7
+ const QUERY_PARAM_VALUE = 'dt';
8
+ const QUERY_PARAM_GROUP_BY = 'dtg';
9
+ export const useMetricsDisplayType = (groups) => {
10
+ const [queryParams, setQueryParams] = useQueryParams({
11
+ [QUERY_PARAM_VALUE]: StringParam,
12
+ [QUERY_PARAM_GROUP_BY]: StringParam,
10
13
  });
11
- const [storageDisplayType, setStoreageDisplayType] = useLocalStorage(PARAM_NAME, MetricsDisplayType.TABLE);
12
- const displayType = useMemo(() => {
13
- const value = queryDisplayType || storageDisplayType;
14
- if (!value) {
15
- return DEFAULT_DISPLAY_TYPE;
14
+ const { [QUERY_PARAM_VALUE]: queryParamValue, [QUERY_PARAM_GROUP_BY]: queryParamGroupBy } = queryParams;
15
+ const [storageValue, setStorageValue] = useLocalStorage(QUERY_PARAM_VALUE, DEFAULT_VALUE);
16
+ const [storageGroupBy, setStorageGroupBy] = useLocalStorage(QUERY_PARAM_GROUP_BY, DEFAULT_GROUP_BY);
17
+ const value = useMemo(() => {
18
+ const resolvedValue = queryParamValue || storageValue;
19
+ if (!resolvedValue) {
20
+ return DEFAULT_VALUE;
16
21
  }
17
- if (!Object.values(MetricsDisplayType).includes(value)) {
18
- return DEFAULT_DISPLAY_TYPE;
22
+ if (!Object.values(MetricsDisplayType).includes(resolvedValue)) {
23
+ return DEFAULT_VALUE;
19
24
  }
20
- return value;
21
- }, [queryDisplayType, storageDisplayType]);
25
+ return resolvedValue;
26
+ }, [queryParamValue, storageValue]);
27
+ const groupBy = useMemo(() => {
28
+ var _a;
29
+ const resolvedValue = queryParamGroupBy || storageGroupBy;
30
+ if (!resolvedValue) {
31
+ return DEFAULT_GROUP_BY;
32
+ }
33
+ if (!((_a = groups === null || groups === void 0 ? void 0 : groups[value]) === null || _a === void 0 ? void 0 : _a.includes(resolvedValue))) {
34
+ return DEFAULT_GROUP_BY;
35
+ }
36
+ return resolvedValue;
37
+ }, [queryParamGroupBy, storageGroupBy]);
38
+ useEffect(() => {
39
+ if (value !== queryParamValue || groupBy !== queryParamGroupBy) {
40
+ setQueryParams({ [QUERY_PARAM_VALUE]: value, [QUERY_PARAM_GROUP_BY]: groupBy });
41
+ }
42
+ }, [value, queryParamValue, groupBy, queryParamGroupBy, setQueryParams]);
22
43
  useEffect(() => {
23
- if (queryDisplayType !== displayType) {
24
- setQueryParams({ [PARAM_NAME]: displayType });
44
+ if (value !== storageValue) {
45
+ setStorageValue(value);
25
46
  }
26
- if (storageDisplayType !== displayType) {
27
- setStoreageDisplayType(queryDisplayType);
47
+ if (groupBy !== storageValue) {
48
+ setStorageGroupBy(groupBy);
28
49
  }
29
- }, [displayType, queryDisplayType, storageDisplayType, setQueryParams, setStoreageDisplayType]);
30
- const setDisplayType = useCallback((value) => {
31
- setStoreageDisplayType(value);
32
- setQueryParams({ [PARAM_NAME]: value });
33
- }, [setStoreageDisplayType, setQueryParams]);
34
- return [displayType, setDisplayType];
50
+ }, [
51
+ value,
52
+ storageValue,
53
+ groupBy,
54
+ storageGroupBy,
55
+ setQueryParams,
56
+ setStorageValue,
57
+ setStorageGroupBy,
58
+ ]);
59
+ const setDisplayType = useCallback((newValue, newGroupBy = DEFAULT_GROUP_BY) => {
60
+ setStorageValue(newValue);
61
+ setStorageGroupBy(newGroupBy);
62
+ setQueryParams({
63
+ [QUERY_PARAM_VALUE]: newValue,
64
+ [QUERY_PARAM_GROUP_BY]: newGroupBy,
65
+ });
66
+ }, [setStorageValue, setQueryParams]);
67
+ return [{ value, groupBy }, setDisplayType];
35
68
  };
36
69
  //# sourceMappingURL=metrics-display-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-display-type.js","sourceRoot":"","sources":["../../src/hooks/metrics-display-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACtD,MAAM,UAAU,GAAG,IAAI,CAAC;AAIxB,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAA0B,EAAE;IAC/D,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,EAAE,cAAc,CAAC,GAAG,cAAc,CAAC;QAC1E,CAAC,UAAU,CAAC,EAAE,WAAW;KAC1B,CAAC,CAAC;IACH,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,GAAG,eAAe,CAClE,UAAU,EACV,kBAAkB,CAAC,KAAK,CACzB,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,MAAM,KAAK,GAAG,gBAAgB,IAAI,kBAAkB,CAAC;QAErD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,oBAAoB,CAAC;SAC7B;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,KAA2B,CAAC,EAAE;YAC5E,OAAO,oBAAoB,CAAC;SAC7B;QAED,OAAO,KAA2B,CAAC;IACrC,CAAC,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE;QAEb,IAAI,gBAAgB,KAAK,WAAW,EAAE;YACpC,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;SAC/C;QAGD,IAAI,kBAAkB,KAAK,WAAW,EAAE;YACtC,sBAAsB,CAAC,gBAAsC,CAAC,CAAC;SAChE;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAEhG,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,KAAyB,EAAE,EAAE;QAC5B,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC9B,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC,EACD,CAAC,sBAAsB,EAAE,cAAc,CAAC,CACzC,CAAC;IAEF,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AACvC,CAAC,CAAC"}
1
+ {"version":3,"file":"metrics-display-type.js","sourceRoot":"","sources":["../../src/hooks/metrics-display-type.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ const ICONS = {
7
7
  CANCEL: 'close',
8
8
  CHEVRON_DOWN: 'chevron-down',
9
9
  CHEVRON_UP: 'chevron-up',
10
+ CHECK: 'check',
10
11
  CLOSE: 'close',
11
12
  CLOCK: 'clock',
12
13
  COMMIT: 'commit',
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/ui/icon/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAEpC,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,OAAO;IACd,kBAAkB,EAAE,oBAAoB;IACxC,MAAM,EAAE,OAAO;IACf,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,eAAe;IAC9B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,eAAe;IAC9B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACV,CAAC;AAEX,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAUX,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAA+C,EAAE,EAAE;IACtE,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAElG,OAAO,CACL,oBAAC,SAAS,IAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,KAAM,SAAS;QACrE,6BAAK,SAAS,EAAE,GAAG,CAAC,IAAI;YACtB,6BAAK,SAAS,EAAE,IAAI,KAAK,EAAE,GAAI,CAC3B,CACI,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/ui/icon/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAEpC,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,OAAO;IACd,kBAAkB,EAAE,oBAAoB;IACxC,MAAM,EAAE,OAAO;IACf,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,eAAe;IAC9B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,eAAe;IAC9B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACV,CAAC;AAEX,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAUX,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAA+C,EAAE,EAAE;IACtE,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAElG,OAAO,CACL,oBAAC,SAAS,IAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,KAAM,SAAS;QACrE,6BAAK,SAAS,EAAE,GAAG,CAAC,IAAI;YACtB,6BAAK,SAAS,EAAE,IAAI,KAAK,EAAE,GAAI,CAC3B,CACI,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bundle-stats/ui",
3
- "version": "4.13.0-beta.15",
3
+ "version": "4.13.0-beta.17",
4
4
  "description": "UI components for BundleStats projects.",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -36,14 +36,14 @@
36
36
  },
37
37
  "homepage": "https://github.com/relative-ci/bundle-stats/blob/master/packages/ui#readme",
38
38
  "devDependencies": {
39
- "@babel/preset-env": "7.24.4",
39
+ "@babel/preset-env": "7.24.5",
40
40
  "@babel/preset-react": "7.24.1",
41
41
  "@babel/preset-typescript": "7.24.1",
42
42
  "@storybook/addon-essentials": "7.6.17",
43
43
  "@storybook/react": "7.6.17",
44
44
  "@storybook/react-webpack5": "7.6.17",
45
45
  "@types/d3": "7.4.3",
46
- "@types/react": "18.2.79",
46
+ "@types/react": "18.3.1",
47
47
  "@types/react-router-dom": "5.3.3",
48
48
  "babel-plugin-require-context-hook": "1.0.0",
49
49
  "classnames": "2.5.1",
@@ -52,12 +52,12 @@
52
52
  "hex-rgb": "5.0.0",
53
53
  "identity-obj-proxy": "3.0.0",
54
54
  "jest": "29.7.0",
55
- "jest-date-mock": "1.0.9",
55
+ "jest-date-mock": "1.0.10",
56
56
  "jest-environment-jsdom": "29.7.0",
57
57
  "lodash": "4.17.21",
58
58
  "prop-types": "15.8.1",
59
- "react": "18.2.0",
60
- "react-dom": "18.2.0",
59
+ "react": "18.3.1",
60
+ "react-dom": "18.3.1",
61
61
  "react-router-dom": "5.3.4",
62
62
  "rimraf": "5.0.5",
63
63
  "storybook": "7.6.17",
@@ -73,12 +73,12 @@
73
73
  "react-router-dom": "^5.0.0"
74
74
  },
75
75
  "dependencies": {
76
- "@bundle-stats/utils": "4.13.0-beta.15",
76
+ "@bundle-stats/utils": "4.13.0-beta.17",
77
77
  "ariakit": "2.0.0-next.44",
78
78
  "d3": "^7.8.5",
79
79
  "modern-css-reset": "1.4.0",
80
80
  "react-use": "^17.5.0",
81
81
  "use-query-params": "2.2.1"
82
82
  },
83
- "gitHead": "40b7e11f3fec5cdac9a9537df1b9af3f91263591"
83
+ "gitHead": "157f0dd4b0377dc61e61054fc6b9e3e751f1a73b"
84
84
  }
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2
+ <polyline points="20 6 9 17 4 12">
3
+ </polyline>
4
+ </svg>