@bundle-stats/ui 4.12.0 → 4.13.0-beta.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 (174) hide show
  1. package/lib/app/app.js +3 -7
  2. package/lib/app/app.js.map +1 -1
  3. package/lib/assets/icons.svg +26 -20
  4. package/lib/assets/icons.svg.js +27 -23
  5. package/lib/assets/icons.svg.js.map +1 -1
  6. package/lib/components/bundle-assets/bundle-assets.js +11 -3
  7. package/lib/components/bundle-assets/bundle-assets.js.map +1 -1
  8. package/lib/components/bundle-assets/index.js +3 -4
  9. package/lib/components/bundle-assets/index.js.map +1 -1
  10. package/lib/components/bundle-assets-totals/bundle-assets-totals.js +77 -0
  11. package/lib/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -0
  12. package/lib/components/bundle-assets-totals/bundle-assets-totals.module.css +7 -0
  13. package/lib/{ui/horizontal-bar-chart → components/bundle-assets-totals}/index.js +1 -1
  14. package/lib/components/bundle-assets-totals/index.js.map +1 -0
  15. package/lib/components/bundle-modules/bundle-modules.js +9 -2
  16. package/lib/components/bundle-modules/bundle-modules.js.map +1 -1
  17. package/lib/components/bundle-modules/index.js +3 -4
  18. package/lib/components/bundle-modules/index.js.map +1 -1
  19. package/lib/components/bundle-packages/bundle-packages.js +10 -2
  20. package/lib/components/bundle-packages/bundle-packages.js.map +1 -1
  21. package/lib/components/bundle-packages/index.js +3 -4
  22. package/lib/components/bundle-packages/index.js.map +1 -1
  23. package/lib/components/index.js +3 -5
  24. package/lib/components/index.js.map +1 -1
  25. package/lib/components/{bundle-assets-totals-table → metrics-display-selector}/index.js +1 -1
  26. package/lib/components/metrics-display-selector/index.js.map +1 -0
  27. package/lib/components/metrics-display-selector/metrics-display-selector.js +27 -0
  28. package/lib/components/metrics-display-selector/metrics-display-selector.js.map +1 -0
  29. package/lib/components/metrics-display-selector/metrics-display-selector.module.css +10 -0
  30. package/lib/components/{bundle-assets-totals-chart-bars → metrics-treemap}/index.js +1 -1
  31. package/lib/components/metrics-treemap/index.js.map +1 -0
  32. package/lib/components/metrics-treemap/metrics-treemap.js +148 -0
  33. package/lib/components/metrics-treemap/metrics-treemap.js.map +1 -0
  34. package/lib/components/metrics-treemap/metrics-treemap.module.css +168 -0
  35. package/lib/constants.js +6 -1
  36. package/lib/constants.js.map +1 -1
  37. package/lib/hooks/metrics-display-type.js +40 -0
  38. package/lib/hooks/metrics-display-type.js.map +1 -0
  39. package/lib/hooks/show-entry.js +13 -0
  40. package/lib/hooks/show-entry.js.map +1 -0
  41. package/lib/ui/icon/icon.js +2 -0
  42. package/lib/ui/icon/icon.js.map +1 -1
  43. package/lib/ui/index.js +1 -3
  44. package/lib/ui/index.js.map +1 -1
  45. package/lib-esm/app/app.js +3 -7
  46. package/lib-esm/app/app.js.map +1 -1
  47. package/lib-esm/assets/icons.svg +26 -20
  48. package/lib-esm/assets/icons.svg.js +27 -23
  49. package/lib-esm/assets/icons.svg.js.map +1 -1
  50. package/lib-esm/components/bundle-assets/bundle-assets.js +11 -3
  51. package/lib-esm/components/bundle-assets/bundle-assets.js.map +1 -1
  52. package/lib-esm/components/bundle-assets/index.js +4 -5
  53. package/lib-esm/components/bundle-assets/index.js.map +1 -1
  54. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js +47 -0
  55. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -0
  56. package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.module.css +7 -0
  57. package/lib-esm/components/bundle-assets-totals/index.js +2 -0
  58. package/lib-esm/components/bundle-assets-totals/index.js.map +1 -0
  59. package/lib-esm/components/bundle-modules/bundle-modules.js +9 -2
  60. package/lib-esm/components/bundle-modules/bundle-modules.js.map +1 -1
  61. package/lib-esm/components/bundle-modules/index.js +3 -4
  62. package/lib-esm/components/bundle-modules/index.js.map +1 -1
  63. package/lib-esm/components/bundle-packages/bundle-packages.js +10 -2
  64. package/lib-esm/components/bundle-packages/bundle-packages.js.map +1 -1
  65. package/lib-esm/components/bundle-packages/index.js +4 -5
  66. package/lib-esm/components/bundle-packages/index.js.map +1 -1
  67. package/lib-esm/components/index.js +1 -2
  68. package/lib-esm/components/index.js.map +1 -1
  69. package/lib-esm/components/metrics-display-selector/index.js +2 -0
  70. package/lib-esm/components/metrics-display-selector/index.js.map +1 -0
  71. package/lib-esm/components/metrics-display-selector/metrics-display-selector.js +20 -0
  72. package/lib-esm/components/metrics-display-selector/metrics-display-selector.js.map +1 -0
  73. package/lib-esm/components/metrics-display-selector/metrics-display-selector.module.css +10 -0
  74. package/lib-esm/components/metrics-treemap/index.js +2 -0
  75. package/lib-esm/components/metrics-treemap/index.js.map +1 -0
  76. package/lib-esm/components/metrics-treemap/metrics-treemap.js +119 -0
  77. package/lib-esm/components/metrics-treemap/metrics-treemap.js.map +1 -0
  78. package/lib-esm/components/metrics-treemap/metrics-treemap.module.css +168 -0
  79. package/lib-esm/constants.js +5 -0
  80. package/lib-esm/constants.js.map +1 -1
  81. package/lib-esm/hooks/metrics-display-type.js +36 -0
  82. package/lib-esm/hooks/metrics-display-type.js.map +1 -0
  83. package/lib-esm/hooks/show-entry.js +9 -0
  84. package/lib-esm/hooks/show-entry.js.map +1 -0
  85. package/lib-esm/ui/icon/icon.js +2 -0
  86. package/lib-esm/ui/icon/icon.js.map +1 -1
  87. package/lib-esm/ui/index.js +0 -1
  88. package/lib-esm/ui/index.js.map +1 -1
  89. package/package.json +11 -6
  90. package/src/app/app.jsx +4 -8
  91. package/src/assets/icons/table.svg +3 -0
  92. package/src/assets/icons/treemap.svg +4 -0
  93. package/src/assets/icons.svg +26 -20
  94. package/src/assets/icons.svg.jsx +91 -55
  95. package/src/components/bundle-assets/bundle-assets.jsx +25 -11
  96. package/src/components/bundle-assets/index.jsx +4 -4
  97. package/src/components/bundle-assets-totals/bundle-assets-totals.jsx +94 -0
  98. package/src/components/bundle-assets-totals/bundle-assets-totals.module.css +7 -0
  99. package/src/components/bundle-assets-totals/index.js +1 -0
  100. package/src/components/bundle-modules/bundle-modules.tsx +26 -12
  101. package/src/components/bundle-modules/index.tsx +4 -3
  102. package/src/components/bundle-packages/bundle-packages.jsx +24 -10
  103. package/src/components/bundle-packages/index.jsx +4 -4
  104. package/src/components/index.js +1 -2
  105. package/src/components/metrics-display-selector/index.tsx +1 -0
  106. package/src/components/metrics-display-selector/metrics-display-selector.module.css +10 -0
  107. package/src/components/metrics-display-selector/metrics-display-selector.tsx +51 -0
  108. package/src/components/metrics-treemap/index.ts +1 -0
  109. package/src/components/metrics-treemap/metrics-treemap.module.css +168 -0
  110. package/src/components/metrics-treemap/metrics-treemap.stories.tsx +23 -0
  111. package/src/components/metrics-treemap/metrics-treemap.tsx +271 -0
  112. package/src/{constants.js → constants.ts} +5 -0
  113. package/src/hooks/metrics-display-type.ts +56 -0
  114. package/src/hooks/show-entry.ts +17 -0
  115. package/src/types.d.ts +2 -0
  116. package/src/ui/icon/icon.tsx +2 -0
  117. package/src/ui/index.js +0 -1
  118. package/types/components/bundle-assets/bundle-assets.d.ts +2 -1
  119. package/types/components/{bundle-assets-totals-table/bundle-assets-totals-table.d.ts → bundle-assets-totals/bundle-assets-totals.d.ts} +2 -2
  120. package/types/components/bundle-assets-totals/index.d.ts +1 -0
  121. package/types/components/bundle-modules/bundle-modules.d.ts +2 -1
  122. package/types/components/bundle-modules/index.d.ts +1 -1
  123. package/types/components/bundle-packages/bundle-packages.d.ts +1 -0
  124. package/types/components/index.d.ts +1 -2
  125. package/types/components/metrics-display-selector/index.d.ts +1 -0
  126. package/types/components/metrics-display-selector/metrics-display-selector.d.ts +9 -0
  127. package/types/components/metrics-treemap/index.d.ts +1 -0
  128. package/types/components/metrics-treemap/metrics-treemap.d.ts +9 -0
  129. package/types/constants.d.ts +19 -15
  130. package/types/hooks/metrics-display-type.d.ts +4 -0
  131. package/types/hooks/show-entry.d.ts +10 -0
  132. package/types/ui/icon/icon.d.ts +4 -0
  133. package/types/ui/index.d.ts +0 -1
  134. package/lib/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.js +0 -95
  135. package/lib/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.js.map +0 -1
  136. package/lib/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.module.css +0 -42
  137. package/lib/components/bundle-assets-totals-chart-bars/index.js.map +0 -1
  138. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.js +0 -57
  139. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.js.map +0 -1
  140. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.module.css +0 -3
  141. package/lib/components/bundle-assets-totals-table/index.js.map +0 -1
  142. package/lib/ui/horizontal-bar-chart/horizontal-bar-chart.js +0 -102
  143. package/lib/ui/horizontal-bar-chart/horizontal-bar-chart.js.map +0 -1
  144. package/lib/ui/horizontal-bar-chart/horizontal-bar-chart.module.css +0 -42
  145. package/lib/ui/horizontal-bar-chart/index.js.map +0 -1
  146. package/lib-esm/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.js +0 -66
  147. package/lib-esm/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.js.map +0 -1
  148. package/lib-esm/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.module.css +0 -42
  149. package/lib-esm/components/bundle-assets-totals-chart-bars/index.js +0 -2
  150. package/lib-esm/components/bundle-assets-totals-chart-bars/index.js.map +0 -1
  151. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js +0 -27
  152. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js.map +0 -1
  153. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.module.css +0 -3
  154. package/lib-esm/components/bundle-assets-totals-table/index.js +0 -2
  155. package/lib-esm/components/bundle-assets-totals-table/index.js.map +0 -1
  156. package/lib-esm/ui/horizontal-bar-chart/horizontal-bar-chart.js +0 -96
  157. package/lib-esm/ui/horizontal-bar-chart/horizontal-bar-chart.js.map +0 -1
  158. package/lib-esm/ui/horizontal-bar-chart/horizontal-bar-chart.module.css +0 -42
  159. package/lib-esm/ui/horizontal-bar-chart/index.js +0 -2
  160. package/lib-esm/ui/horizontal-bar-chart/index.js.map +0 -1
  161. package/src/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.jsx +0 -106
  162. package/src/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.module.css +0 -42
  163. package/src/components/bundle-assets-totals-chart-bars/index.js +0 -1
  164. package/src/components/bundle-assets-totals-table/bundle-assets-totals-table.jsx +0 -55
  165. package/src/components/bundle-assets-totals-table/bundle-assets-totals-table.module.css +0 -3
  166. package/src/components/bundle-assets-totals-table/index.js +0 -1
  167. package/src/ui/horizontal-bar-chart/horizontal-bar-chart.jsx +0 -156
  168. package/src/ui/horizontal-bar-chart/horizontal-bar-chart.module.css +0 -42
  169. package/src/ui/horizontal-bar-chart/index.js +0 -1
  170. package/types/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.d.ts +0 -22
  171. package/types/components/bundle-assets-totals-chart-bars/index.d.ts +0 -1
  172. package/types/components/bundle-assets-totals-table/index.d.ts +0 -1
  173. package/types/ui/horizontal-bar-chart/horizontal-bar-chart.d.ts +0 -23
  174. package/types/ui/horizontal-bar-chart/index.d.ts +0 -1
@@ -1,156 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import round from 'lodash/round';
4
- import sum from 'lodash/sum';
5
- import cx from 'classnames';
6
-
7
- import { getColors } from '../../utils';
8
- import { Tooltip } from '../tooltip';
9
- import css from './horizontal-bar-chart.module.css';
10
-
11
- class HorizontalBarChartItem extends React.Component {
12
- constructor(props) {
13
- super(props);
14
-
15
- this.textRef = React.createRef();
16
- this.ref = React.createRef();
17
-
18
- this.state = {
19
- isTextOverflowing: true,
20
- };
21
- }
22
-
23
- componentDidMount() {
24
- const wrapperWidth = this.ref?.current?.clientWidth || 0;
25
- const textWidth = this.textRef?.current?.scrollWidth || 0;
26
-
27
- if (wrapperWidth >= (textWidth + 2 * 4)) {
28
- this.setState({ isTextOverflowing: false });
29
- }
30
- }
31
-
32
- render() {
33
- const {
34
- color, label, getItemTooltip, width,
35
- } = this.props;
36
- const { isTextOverflowing } = this.state;
37
- const tooltipContent = getItemTooltip();
38
-
39
- return (
40
- <span
41
- className={cx(css.item, isTextOverflowing && css.textOverflowed)}
42
- style={{
43
- width,
44
- background: color,
45
- }}
46
- ref={this.ref}
47
- >
48
- <Tooltip
49
- className={css.itemContent}
50
- title={tooltipContent}
51
- darkMode={false}
52
- >
53
- <span className={css.itemLabel} ref={this.textRef}>
54
- {label}
55
- </span>
56
- </Tooltip>
57
- </span>
58
- );
59
- }
60
- }
61
-
62
- HorizontalBarChartItem.propTypes = {
63
- width: PropTypes.string.isRequired,
64
- color: PropTypes.string.isRequired,
65
- label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,
66
- getItemTooltip: PropTypes.func,
67
- };
68
-
69
- HorizontalBarChartItem.defaultProps = {
70
- getItemTooltip: () => null,
71
- };
72
-
73
- const getTotalValues = (values) => sum(values.map((entry) => {
74
- if (typeof entry === 'object') {
75
- return entry.value;
76
- }
77
-
78
- return entry;
79
- }));
80
-
81
- export const HorizontalBarChart = (props) => {
82
- const { className, data, maxValue } = props;
83
- const { labels, values } = data;
84
-
85
- const defaultColors = getColors(labels.length);
86
- const total = maxValue || getTotalValues(values);
87
-
88
- const entries = values.reduce((agg, entry, index) => {
89
- const {
90
- value,
91
- color = defaultColors[index],
92
- label = labels[index],
93
- getItemTooltip,
94
- } = typeof entry === 'object' ? entry : { value: entry };
95
-
96
- const width = `${round((value / total) * 100, 2)}%`;
97
-
98
- return [
99
- ...agg,
100
- {
101
- value,
102
- width,
103
- color,
104
- label,
105
- getItemTooltip,
106
- },
107
- ];
108
- }, []);
109
-
110
- return (
111
- <div className={cx(css.root, className)}>
112
- {entries.map(({
113
- color, getItemTooltip, label, width,
114
- }, index) => {
115
- const key = index;
116
-
117
- return (
118
- <HorizontalBarChartItem
119
- key={key}
120
- width={width}
121
- color={color}
122
- label={label}
123
- getItemTooltip={getItemTooltip}
124
- className={css.item}
125
- />
126
- );
127
- })}
128
- </div>
129
- );
130
- };
131
-
132
- HorizontalBarChart.defaultProps = {
133
- className: '',
134
- maxValue: null,
135
- };
136
-
137
- HorizontalBarChart.propTypes = {
138
- /** Adopted child class name */
139
- className: PropTypes.string,
140
-
141
- /** Data */
142
- data: PropTypes.shape({
143
- labels: PropTypes.arrayOf(PropTypes.string),
144
- values: PropTypes.arrayOf(PropTypes.oneOfType([
145
- PropTypes.number,
146
- PropTypes.shape({
147
- value: PropTypes.number,
148
- color: PropTypes.string,
149
- label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
150
- }),
151
- ])),
152
- }).isRequired,
153
-
154
- /** Mac value */
155
- maxValue: PropTypes.number,
156
- };
@@ -1,42 +0,0 @@
1
- .root {
2
- background: var(--color-highlight);
3
- display: flex;
4
- align-items: stretch;
5
- justify-content: flex-start;
6
- width: 100%;
7
- overflow: hidden;
8
- }
9
-
10
- .item {
11
- flex: 0 1 auto;
12
- background: var(--color-text);
13
- display: inline-flex;
14
- min-width: var(--space-xxxsmall);
15
- min-height: var(--space-medium);
16
- }
17
-
18
- .itemContent {
19
- display: flex;
20
- width: 100%;
21
- height: 100%;
22
- padding: var(--space-xxsmall);
23
- align-items: center;
24
- justify-content: center;
25
-
26
- color: var(--color-background);
27
- font-weight: bold;
28
- text-overflow: ellipsis;
29
- text-align: center;
30
- }
31
-
32
- .itemLabel {
33
- position: absolute;
34
- left: 50%;
35
- top: 50%;
36
- transform: translate(-50%, -50%);
37
- visibility: visible;
38
- }
39
-
40
- .textOverflowed .itemLabel {
41
- visibility: hidden;
42
- }
@@ -1 +0,0 @@
1
- export * from './horizontal-bar-chart';
@@ -1,22 +0,0 @@
1
- export function BundleAssetsTotalsChartBars({ className, jobs, customComponentLink: CustomComponentLink, }: {
2
- className: any;
3
- jobs: any;
4
- customComponentLink: any;
5
- }): React.JSX.Element;
6
- export namespace BundleAssetsTotalsChartBars {
7
- namespace defaultProps {
8
- export let className: string;
9
- export { ComponentLink as customComponentLink };
10
- }
11
- namespace propTypes {
12
- let className_1: PropTypes.Requireable<string>;
13
- export { className_1 as className };
14
- export let jobs: PropTypes.Validator<(PropTypes.InferProps<{
15
- internalBuildNumber: PropTypes.Requireable<number>;
16
- }> | null | undefined)[]>;
17
- export let customComponentLink: PropTypes.Requireable<PropTypes.ReactComponentLike>;
18
- }
19
- }
20
- import React from 'react';
21
- import { ComponentLink } from '../component-link';
22
- import PropTypes from 'prop-types';
@@ -1 +0,0 @@
1
- export * from "./bundle-assets-totals-chart-bars";
@@ -1 +0,0 @@
1
- export * from "./bundle-assets-totals-table";
@@ -1,23 +0,0 @@
1
- export function HorizontalBarChart(props: any): React.JSX.Element;
2
- export namespace HorizontalBarChart {
3
- namespace defaultProps {
4
- let className: string;
5
- let maxValue: null;
6
- }
7
- namespace propTypes {
8
- let className_1: PropTypes.Requireable<string>;
9
- export { className_1 as className };
10
- export let data: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
11
- labels: PropTypes.Requireable<(string | null | undefined)[]>;
12
- values: PropTypes.Requireable<(NonNullable<number | PropTypes.InferProps<{
13
- value: PropTypes.Requireable<number>;
14
- color: PropTypes.Requireable<string>;
15
- label: PropTypes.Requireable<NonNullable<string | PropTypes.ReactElementLike | null | undefined>>;
16
- }> | null | undefined> | null | undefined)[]>;
17
- }>>>;
18
- let maxValue_1: PropTypes.Requireable<number>;
19
- export { maxValue_1 as maxValue };
20
- }
21
- }
22
- import React from 'react';
23
- import PropTypes from 'prop-types';
@@ -1 +0,0 @@
1
- export * from "./horizontal-bar-chart";