@bundle-stats/ui 4.13.0-beta.9 → 4.13.0-rc.1
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.
- package/lib/app/app.js +4 -8
- package/lib/app/app.js.map +1 -1
- package/lib/app/app.module.css +2 -2
- package/lib/assets/icons.svg +70 -67
- package/lib/assets/icons.svg.js +14 -12
- package/lib/assets/icons.svg.js.map +1 -1
- package/lib/components/bundle-assets/bundle-assets.js +61 -26
- package/lib/components/bundle-assets/bundle-assets.js.map +1 -1
- package/lib/components/bundle-assets/bundle-assets.module.css +0 -5
- package/lib/components/bundle-assets/index.js +3 -1
- package/lib/components/bundle-assets/index.js.map +1 -1
- package/lib/components/bundle-assets-totals/bundle-assets-totals.js +14 -12
- package/lib/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
- package/lib/components/bundle-modules/bundle-modules.i18n.js +1 -1
- package/lib/components/bundle-modules/bundle-modules.js +42 -15
- package/lib/components/bundle-modules/bundle-modules.js.map +1 -1
- package/lib/components/bundle-modules/bundle-modules.module.css +0 -5
- package/lib/components/bundle-modules/bundle-modules.utils.js +2 -13
- package/lib/components/bundle-modules/bundle-modules.utils.js.map +1 -1
- package/lib/components/bundle-modules/index.js +2 -1
- package/lib/components/bundle-modules/index.js.map +1 -1
- package/lib/components/bundle-packages/bundle-packages.js +48 -9
- package/lib/components/bundle-packages/bundle-packages.js.map +1 -1
- package/lib/components/bundle-packages/bundle-packages.module.css +0 -5
- package/lib/components/delta/delta.js +1 -1
- package/lib/components/delta/delta.js.map +1 -1
- package/lib/components/delta/delta.module.css +10 -1
- package/lib/components/jobs-header/jobs-header.module.css +0 -4
- package/lib/components/metrics-display-selector/metrics-display-selector.js +41 -4
- package/lib/components/metrics-display-selector/metrics-display-selector.js.map +1 -1
- package/lib/components/metrics-display-selector/metrics-display-selector.module.css +15 -7
- package/lib/components/metrics-treemap/index.js +4 -0
- package/lib/components/metrics-treemap/index.js.map +1 -1
- package/lib/components/metrics-treemap/metrics-treemap.constants.js +10 -0
- package/lib/components/metrics-treemap/metrics-treemap.constants.js.map +1 -0
- package/lib/components/metrics-treemap/metrics-treemap.i18n.js +6 -0
- package/lib/components/metrics-treemap/metrics-treemap.i18n.js.map +1 -0
- package/lib/components/metrics-treemap/metrics-treemap.js +131 -95
- package/lib/components/metrics-treemap/metrics-treemap.js.map +1 -1
- package/lib/components/metrics-treemap/metrics-treemap.module.css +179 -54
- package/lib/components/metrics-treemap/metrics-treemap.utils.js +168 -0
- package/lib/components/metrics-treemap/metrics-treemap.utils.js.map +1 -0
- package/lib/components/module-info/module-info.js +1 -2
- package/lib/components/module-info/module-info.js.map +1 -1
- package/lib/components/run-info/run-info.module.css +7 -7
- package/lib/css/variables.css +14 -13
- package/lib/hooks/metrics-display-type.js +45 -24
- package/lib/hooks/metrics-display-type.js.map +1 -1
- package/lib/hooks/search-params.js +1 -0
- package/lib/hooks/search-params.js.map +1 -1
- package/lib/layout/box/box.module.css +4 -2
- package/lib/layout/flex-stack/flex-stack.js +3 -4
- package/lib/layout/flex-stack/flex-stack.js.map +1 -1
- package/lib/layout/flex-stack/flex-stack.module.css +19 -23
- package/lib/ui/button/button.js +5 -4
- package/lib/ui/button/button.js.map +1 -1
- package/lib/ui/button/button.module.css +55 -53
- package/lib/ui/dropdown/dropdown.js +2 -2
- package/lib/ui/dropdown/dropdown.js.map +1 -1
- package/lib/ui/filters/filters.js +2 -2
- package/lib/ui/filters/filters.js.map +1 -1
- package/lib/ui/filters/filters.module.css +8 -1
- package/lib/ui/hover-card/hover-card.js +1 -1
- package/lib/ui/hover-card/hover-card.js.map +1 -1
- package/lib/ui/icon/icon.js +2 -1
- package/lib/ui/icon/icon.js.map +1 -1
- package/lib/ui/input-search/input-search.js +1 -1
- package/lib/ui/input-search/input-search.js.map +1 -1
- package/lib/ui/loader/loader.js +1 -1
- package/lib/ui/loader/loader.js.map +1 -1
- package/lib/ui/table/table.module.css +30 -0
- package/lib/ui/tag/tag.module.css +3 -3
- package/lib/ui/toolbar/toolbar.module.css +1 -3
- package/lib/utils/colors.js +22 -0
- package/lib/utils/colors.js.map +1 -0
- package/lib/{utils.js → utils/components.js} +2 -17
- package/lib/utils/components.js.map +1 -0
- package/lib/utils/index.js +20 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/jobs.js +18 -0
- package/lib/utils/jobs.js.map +1 -0
- package/lib-esm/app/app.js +4 -8
- package/lib-esm/app/app.js.map +1 -1
- package/lib-esm/app/app.module.css +2 -2
- package/lib-esm/assets/icons.svg +70 -67
- package/lib-esm/assets/icons.svg.js +14 -12
- package/lib-esm/assets/icons.svg.js.map +1 -1
- package/lib-esm/components/bundle-assets/bundle-assets.js +62 -28
- package/lib-esm/components/bundle-assets/bundle-assets.js.map +1 -1
- package/lib-esm/components/bundle-assets/bundle-assets.module.css +0 -5
- package/lib-esm/components/bundle-assets/index.js +3 -1
- package/lib-esm/components/bundle-assets/index.js.map +1 -1
- package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js +15 -13
- package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.js.map +1 -1
- package/lib-esm/components/bundle-modules/bundle-modules.i18n.js +1 -1
- package/lib-esm/components/bundle-modules/bundle-modules.js +43 -16
- package/lib-esm/components/bundle-modules/bundle-modules.js.map +1 -1
- package/lib-esm/components/bundle-modules/bundle-modules.module.css +0 -5
- package/lib-esm/components/bundle-modules/bundle-modules.utils.js +1 -11
- package/lib-esm/components/bundle-modules/bundle-modules.utils.js.map +1 -1
- package/lib-esm/components/bundle-modules/index.js +3 -2
- package/lib-esm/components/bundle-modules/index.js.map +1 -1
- package/lib-esm/components/bundle-packages/bundle-packages.js +49 -10
- package/lib-esm/components/bundle-packages/bundle-packages.js.map +1 -1
- package/lib-esm/components/bundle-packages/bundle-packages.module.css +0 -5
- package/lib-esm/components/delta/delta.js +1 -1
- package/lib-esm/components/delta/delta.js.map +1 -1
- package/lib-esm/components/delta/delta.module.css +10 -1
- package/lib-esm/components/jobs-header/jobs-header.module.css +0 -4
- package/lib-esm/components/metrics-display-selector/metrics-display-selector.js +41 -4
- package/lib-esm/components/metrics-display-selector/metrics-display-selector.js.map +1 -1
- package/lib-esm/components/metrics-display-selector/metrics-display-selector.module.css +15 -7
- package/lib-esm/components/metrics-treemap/index.js +1 -0
- package/lib-esm/components/metrics-treemap/index.js.map +1 -1
- package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js +7 -0
- package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js.map +1 -0
- package/lib-esm/components/metrics-treemap/metrics-treemap.i18n.js +3 -0
- package/lib-esm/components/metrics-treemap/metrics-treemap.i18n.js.map +1 -0
- package/lib-esm/components/metrics-treemap/metrics-treemap.js +134 -98
- package/lib-esm/components/metrics-treemap/metrics-treemap.js.map +1 -1
- package/lib-esm/components/metrics-treemap/metrics-treemap.module.css +179 -54
- package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js +162 -0
- package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js.map +1 -0
- package/lib-esm/components/module-info/module-info.js +1 -2
- package/lib-esm/components/module-info/module-info.js.map +1 -1
- package/lib-esm/components/run-info/run-info.module.css +7 -7
- package/lib-esm/css/variables.css +14 -13
- package/lib-esm/hooks/metrics-display-type.js +46 -24
- package/lib-esm/hooks/metrics-display-type.js.map +1 -1
- package/lib-esm/hooks/search-params.js +1 -0
- package/lib-esm/hooks/search-params.js.map +1 -1
- package/lib-esm/layout/box/box.module.css +4 -2
- package/lib-esm/layout/flex-stack/flex-stack.js +3 -4
- package/lib-esm/layout/flex-stack/flex-stack.js.map +1 -1
- package/lib-esm/layout/flex-stack/flex-stack.module.css +19 -23
- package/lib-esm/ui/button/button.js +5 -4
- package/lib-esm/ui/button/button.js.map +1 -1
- package/lib-esm/ui/button/button.module.css +55 -53
- package/lib-esm/ui/dropdown/dropdown.js +2 -2
- package/lib-esm/ui/dropdown/dropdown.js.map +1 -1
- package/lib-esm/ui/filters/filters.js +2 -2
- package/lib-esm/ui/filters/filters.js.map +1 -1
- package/lib-esm/ui/filters/filters.module.css +8 -1
- package/lib-esm/ui/hover-card/hover-card.js +1 -1
- package/lib-esm/ui/hover-card/hover-card.js.map +1 -1
- package/lib-esm/ui/icon/icon.js +2 -1
- package/lib-esm/ui/icon/icon.js.map +1 -1
- package/lib-esm/ui/input-search/input-search.js +1 -1
- package/lib-esm/ui/input-search/input-search.js.map +1 -1
- package/lib-esm/ui/loader/loader.js +1 -1
- package/lib-esm/ui/loader/loader.js.map +1 -1
- package/lib-esm/ui/table/table.module.css +30 -0
- package/lib-esm/ui/tag/tag.module.css +3 -3
- package/lib-esm/ui/toolbar/toolbar.module.css +1 -3
- package/lib-esm/utils/colors.js +15 -0
- package/lib-esm/utils/colors.js.map +1 -0
- package/lib-esm/utils/components.js +16 -0
- package/lib-esm/utils/components.js.map +1 -0
- package/lib-esm/utils/index.js +4 -0
- package/lib-esm/utils/index.js.map +1 -0
- package/lib-esm/utils/jobs.js +11 -0
- package/lib-esm/utils/jobs.js.map +1 -0
- package/package.json +9 -9
- package/src/app/app.jsx +4 -12
- package/src/app/app.module.css +2 -2
- package/src/assets/icons/check.svg +4 -0
- package/src/assets/icons.svg +70 -67
- package/src/assets/icons.svg.jsx +12 -12
- package/src/components/bundle-assets/bundle-assets.jsx +147 -66
- package/src/components/bundle-assets/bundle-assets.module.css +0 -5
- package/src/components/bundle-assets/index.jsx +4 -0
- package/src/components/bundle-assets-totals/bundle-assets-totals.jsx +53 -46
- package/src/components/bundle-modules/bundle-modules.i18n.ts +1 -1
- package/src/components/bundle-modules/bundle-modules.module.css +0 -5
- package/src/components/bundle-modules/bundle-modules.tsx +140 -56
- package/src/components/bundle-modules/bundle-modules.types.d.ts +2 -17
- package/src/components/bundle-modules/bundle-modules.utils.ts +7 -18
- package/src/components/bundle-modules/index.tsx +4 -3
- package/src/components/bundle-packages/bundle-packages.jsx +89 -20
- package/src/components/bundle-packages/bundle-packages.module.css +0 -5
- package/src/components/delta/delta.jsx +1 -1
- package/src/components/delta/delta.module.css +10 -1
- package/src/components/jobs-header/jobs-header.module.css +0 -4
- package/src/components/metrics-display-selector/metrics-display-selector.module.css +15 -7
- package/src/components/metrics-display-selector/metrics-display-selector.stories.tsx +33 -0
- package/src/components/metrics-display-selector/metrics-display-selector.tsx +83 -25
- package/src/components/metrics-treemap/__tests__/metrics-treemap.utils.ts +188 -0
- package/src/components/metrics-treemap/index.ts +1 -0
- package/src/components/metrics-treemap/metrics-treemap.constants.ts +63 -0
- package/src/components/metrics-treemap/metrics-treemap.i18n.ts +2 -0
- package/src/components/metrics-treemap/metrics-treemap.module.css +179 -54
- package/src/components/metrics-treemap/metrics-treemap.stories.tsx +44 -10
- package/src/components/metrics-treemap/metrics-treemap.tsx +453 -184
- package/src/components/metrics-treemap/metrics-treemap.utils.ts +268 -0
- package/src/components/module-info/module-info.tsx +1 -1
- package/src/components/run-info/run-info.module.css +7 -7
- package/src/css/variables.css +14 -13
- package/src/hooks/metrics-display-type.ts +79 -29
- package/src/hooks/search-params.js +1 -0
- package/src/layout/box/box.module.css +4 -2
- package/src/layout/flex-stack/flex-stack.module.css +19 -23
- package/src/layout/flex-stack/flex-stack.tsx +2 -8
- package/src/ui/button/button.module.css +55 -53
- package/src/ui/button/button.stories.tsx +16 -9
- package/src/ui/button/button.tsx +8 -7
- package/src/ui/dropdown/dropdown.tsx +2 -3
- package/src/ui/filters/filters.module.css +8 -1
- package/src/ui/filters/filters.tsx +2 -3
- package/src/ui/hover-card/hover-card.tsx +1 -1
- package/src/ui/icon/icon.tsx +2 -1
- package/src/ui/input-search/input-search.tsx +1 -0
- package/src/ui/loader/loader.jsx +1 -1
- package/src/ui/table/table.module.css +30 -0
- package/src/ui/tag/tag.module.css +3 -3
- package/src/ui/toolbar/toolbar.module.css +1 -3
- package/src/utils/colors.ts +19 -0
- package/src/utils/components.tsx +19 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/jobs.ts +22 -0
- package/types/components/bundle-assets/bundle-assets.d.ts +1 -5
- package/types/components/bundle-modules/bundle-modules.d.ts +4 -2
- package/types/components/bundle-modules/bundle-modules.i18n.d.ts +1 -1
- package/types/components/bundle-modules/bundle-modules.utils.d.ts +3 -7
- package/types/components/bundle-modules/index.d.ts +2 -2
- package/types/components/delta/delta.d.ts +2 -2
- package/types/components/metrics-display-selector/metrics-display-selector.d.ts +3 -1
- package/types/components/metrics-treemap/index.d.ts +1 -0
- package/types/components/metrics-treemap/metrics-treemap.constants.d.ts +28 -0
- package/types/components/metrics-treemap/metrics-treemap.d.ts +7 -5
- package/types/components/metrics-treemap/metrics-treemap.i18n.d.ts +2 -0
- package/types/components/metrics-treemap/metrics-treemap.utils.d.ts +15 -0
- package/types/hooks/metrics-display-type.d.ts +8 -2
- package/types/ui/dropdown/dropdown.d.ts +0 -1
- package/types/ui/icon/icon.d.ts +4 -2
- package/types/ui/loader/loader.d.ts +2 -2
- package/types/utils/colors.d.ts +1 -0
- package/types/utils/components.d.ts +2 -0
- package/types/utils/index.d.ts +3 -0
- package/types/utils/jobs.d.ts +7 -0
- package/lib/components/bundle-assets-totals/bundle-assets-totals.module.css +0 -7
- package/lib/utils.js.map +0 -1
- package/lib-esm/components/bundle-assets-totals/bundle-assets-totals.module.css +0 -7
- package/lib-esm/utils.js +0 -30
- package/lib-esm/utils.js.map +0 -1
- package/src/components/bundle-assets-totals/bundle-assets-totals.module.css +0 -7
- package/src/utils.jsx +0 -38
- package/types/utils.d.ts +0 -3
|
@@ -38,22 +38,24 @@ const metrics_display_type_1 = require("../../hooks/metrics-display-type");
|
|
|
38
38
|
const i18n_1 = __importDefault(require("../../i18n"));
|
|
39
39
|
const toolbar_1 = require("../../ui/toolbar");
|
|
40
40
|
const table_1 = require("../../ui/table");
|
|
41
|
+
const box_1 = require("../../layout/box");
|
|
42
|
+
const stack_1 = require("../../layout/stack");
|
|
41
43
|
const metrics_display_selector_1 = require("../metrics-display-selector");
|
|
42
44
|
const metrics_table_1 = require("../metrics-table");
|
|
43
45
|
const metrics_table_title_1 = require("../metrics-table-title");
|
|
44
46
|
const metrics_table_header_1 = require("../metrics-table-header");
|
|
45
47
|
const metrics_treemap_1 = require("../metrics-treemap");
|
|
46
48
|
const component_link_1 = require("../component-link");
|
|
47
|
-
const
|
|
49
|
+
const metricsTableTitle = (react_1.default.createElement(metrics_table_title_1.MetricsTableTitle, { title: i18n_1.default.ASSET_TOTALS, popoverInfo: i18n_1.default.ASSET_TOTALS_INFO, popoverHref: config_json_1.default.documentation.assets }));
|
|
48
50
|
const BundleAssetsTotals = ({ className, jobs, customComponentLink: CustomComponentLink, onTreemapItemClick, ...restProps }) => {
|
|
49
51
|
const [displayType, setDisplayType] = (0, metrics_display_type_1.useMetricsDisplayType)();
|
|
50
52
|
const history = (0, react_router_dom_1.useHistory)();
|
|
51
|
-
const items = webpack.compareBySection.sizes(jobs);
|
|
52
|
-
const renderRowHeader = (item) => {
|
|
53
|
+
const items = (0, react_1.useMemo)(() => webpack.compareBySection.sizes(jobs), [jobs]);
|
|
54
|
+
const renderRowHeader = (0, react_1.useCallback)((item) => {
|
|
53
55
|
const fileType = constants_1.ASSETS_SIZES_FILE_TYPE_MAP[item.key];
|
|
54
56
|
const { section, title, params } = (0, utils_1.getBundleAssetsFileTypeComponentLink)(fileType, item.label);
|
|
55
57
|
return (react_1.default.createElement(CustomComponentLink, { section: section, title: title, params: params }, item.label));
|
|
56
|
-
};
|
|
58
|
+
}, [CustomComponentLink]);
|
|
57
59
|
const handleMetricsTreemapItemClick = (0, react_1.useCallback)((entryId) => {
|
|
58
60
|
const fileType = constants_1.ASSETS_SIZES_FILE_TYPE_MAP[entryId];
|
|
59
61
|
const { section, params } = (0, utils_1.getBundleAssetsFileTypeComponentLink)(fileType, '');
|
|
@@ -61,14 +63,14 @@ const BundleAssetsTotals = ({ className, jobs, customComponentLink: CustomCompon
|
|
|
61
63
|
const nextUrl = `${constants_1.SECTION_URLS[section]}?${queryParams}`;
|
|
62
64
|
history.push(nextUrl);
|
|
63
65
|
}, [history]);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
react_1.default.createElement(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
return (react_1.default.createElement(stack_1.Stack, { space: "xsmall", as: "section", className: className },
|
|
67
|
+
react_1.default.createElement(toolbar_1.Toolbar, { renderActions: () => (react_1.default.createElement(metrics_display_selector_1.MetricsDisplaySelector, { onSelect: setDisplayType, value: displayType.value })) }),
|
|
68
|
+
react_1.default.createElement(box_1.Box, { outline: true, as: "main" },
|
|
69
|
+
displayType.value === constants_1.MetricsDisplayType.TABLE && (react_1.default.createElement(metrics_table_1.MetricsTable, { title: metricsTableTitle, runs: jobs, items: items, renderRowHeader: renderRowHeader, showHeaderSum: true, ...restProps })),
|
|
70
|
+
displayType.value === constants_1.MetricsDisplayType.TREEMAP && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
71
|
+
react_1.default.createElement(table_1.Table, { compact: true },
|
|
72
|
+
react_1.default.createElement(metrics_table_header_1.MetricsTableHeader, { metricTitle: metricsTableTitle, showSum: true, jobs: jobs, rows: items })),
|
|
73
|
+
react_1.default.createElement(metrics_treemap_1.MetricsTreemap, { treeNodes: (0, metrics_treemap_1.getTreemapNodes)(items), onItemClick: onTreemapItemClick || handleMetricsTreemapItemClick }))))));
|
|
72
74
|
};
|
|
73
75
|
exports.BundleAssetsTotals = BundleAssetsTotals;
|
|
74
76
|
exports.BundleAssetsTotals.defaultProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-assets-totals.js","sourceRoot":"","sources":["../../../src/components/bundle-assets-totals/bundle-assets-totals.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAoD;AACpD,4DAAmC;AACnC,uDAA8C;AAC9C,+CAG6B;AAC7B,6EAA+D;AAE/D,oEAAuC;AACvC,+CAA+F;AAC/F,2EAAyE;AACzE,sDAA8B;AAC9B,8CAA2C;AAC3C,0CAAuC;AACvC,0EAAqE;AACrE,oDAAgD;AAChD,gEAA2D;AAC3D,kEAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"bundle-assets-totals.js","sourceRoot":"","sources":["../../../src/components/bundle-assets-totals/bundle-assets-totals.jsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SOURCE_THIRD_PARTY = exports.SOURCE_FIRST_PARTY = exports.SOURCE = exports.FILE_TYPE = exports.CHUNK = exports.DUPLICATE = exports.CHANGED = exports.SEARCH = void 0;
|
|
4
|
-
exports.SEARCH = 'Search by module
|
|
4
|
+
exports.SEARCH = 'Search by module path';
|
|
5
5
|
exports.CHANGED = 'Changed';
|
|
6
6
|
exports.DUPLICATE = 'Duplicate';
|
|
7
7
|
exports.CHUNK = 'Chunk';
|
|
@@ -32,9 +32,10 @@ const classnames_1 = __importDefault(require("classnames"));
|
|
|
32
32
|
const utils_1 = require("@bundle-stats/utils");
|
|
33
33
|
const config_json_1 = __importDefault(require("../../config.json"));
|
|
34
34
|
const i18n_1 = __importDefault(require("../../i18n"));
|
|
35
|
-
const box_1 = require("../../layout/box");
|
|
36
35
|
const constants_1 = require("../../constants");
|
|
36
|
+
const box_1 = require("../../layout/box");
|
|
37
37
|
const flex_stack_1 = require("../../layout/flex-stack");
|
|
38
|
+
const stack_1 = require("../../layout/stack");
|
|
38
39
|
const button_1 = require("../../ui/button");
|
|
39
40
|
const control_group_1 = require("../../ui/control-group");
|
|
40
41
|
const empty_set_1 = require("../../ui/empty-set");
|
|
@@ -58,6 +59,9 @@ const bundle_modules_constants_1 = require("./bundle-modules.constants");
|
|
|
58
59
|
const I18N_MODULES = __importStar(require("./bundle-modules.i18n"));
|
|
59
60
|
const bundle_modules_module_css_1 = __importDefault(require("./bundle-modules.module.css"));
|
|
60
61
|
const metrics_display_type_1 = require("../../hooks/metrics-display-type");
|
|
62
|
+
const DISPLAY_TYPE_GROUPS = {
|
|
63
|
+
[constants_1.MetricsDisplayType.TREEMAP]: ['folder'],
|
|
64
|
+
};
|
|
61
65
|
const RowHeader = (props) => {
|
|
62
66
|
const { row, filters, search, moduleMetric, customComponentLink: CustomComponentLink } = props;
|
|
63
67
|
return (react_1.default.createElement(CustomComponentLink, { section: utils_1.SECTIONS.MODULES, params: {
|
|
@@ -66,11 +70,36 @@ const RowHeader = (props) => {
|
|
|
66
70
|
row.duplicated && (react_1.default.createElement(tag_1.Tag, { className: bundle_modules_module_css_1.default.nameTagDuplicated, size: "small", kind: tag_1.Tag.KINDS.DANGER })),
|
|
67
71
|
react_1.default.createElement(file_name_1.FileName, { className: bundle_modules_module_css_1.default.nameText, name: row.label })));
|
|
68
72
|
};
|
|
73
|
+
const ViewMetricsTreemap = (props) => {
|
|
74
|
+
const { metricsTableTitle, jobs, items, displayType, emptyMessage, showEntryInfo, updateSearch, search, } = props;
|
|
75
|
+
const treeNodes = (0, react_1.useMemo)(() => {
|
|
76
|
+
if (displayType.groupBy === 'folder') {
|
|
77
|
+
return (0, metrics_treemap_1.getTreemapNodesGroupedByPath)(items);
|
|
78
|
+
}
|
|
79
|
+
return (0, metrics_treemap_1.getTreemapNodes)(items);
|
|
80
|
+
}, [items, displayType]);
|
|
81
|
+
const onGroupClick = (0, react_1.useCallback)((groupPath) => {
|
|
82
|
+
if (groupPath === '') {
|
|
83
|
+
updateSearch('');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const newSearch = `^${groupPath}/`;
|
|
87
|
+
if (newSearch === search) {
|
|
88
|
+
updateSearch('');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
updateSearch(newSearch);
|
|
92
|
+
}, [updateSearch, search]);
|
|
93
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
94
|
+
react_1.default.createElement(table_1.Table, { compact: true },
|
|
95
|
+
react_1.default.createElement(metrics_table_header_1.MetricsTableHeader, { metricTitle: metricsTableTitle, showSum: true, jobs: jobs, rows: items })),
|
|
96
|
+
react_1.default.createElement(metrics_treemap_1.MetricsTreemap, { treeNodes: treeNodes, nested: Boolean(displayType.groupBy), emptyMessage: emptyMessage, onItemClick: showEntryInfo, onGroupClick: onGroupClick })));
|
|
97
|
+
};
|
|
69
98
|
const BundleModules = (props) => {
|
|
70
99
|
const { className = '', jobs = [], items = [], allItems = [], chunks = [], totalRowCount = 0, updateFilters, resetFilters, resetAllFilters, filters, sort, updateSort, search, updateSearch, entryId, hideEntryInfo, moduleMetric, setModuleMetric, showEntryInfo, customComponentLink: CustomComponentLink = component_link_1.ComponentLink, } = props;
|
|
71
100
|
const rootClassName = (0, classnames_1.default)(bundle_modules_module_css_1.default.root, className);
|
|
72
101
|
const jobLabels = jobs?.map((job) => job?.label);
|
|
73
|
-
const [displayType, setDisplayType] = (0, metrics_display_type_1.useMetricsDisplayType)();
|
|
102
|
+
const [displayType, setDisplayType] = (0, metrics_display_type_1.useMetricsDisplayType)(DISPLAY_TYPE_GROUPS);
|
|
74
103
|
const filterFieldsData = (0, react_1.useMemo)(() => (0, bundle_modules_utils_1.generateFilterFieldsData)({ filters, chunks, compareMode: jobs.length > 1 }), [jobs, filters, chunks]);
|
|
75
104
|
const metricsTableTitle = (0, react_1.useMemo)(() => (react_1.default.createElement(metrics_table_title_1.MetricsTableTitle, { title: i18n_1.default.MODULES, info: `${items.length}/${totalRowCount}`, popoverInfo: i18n_1.default.MODULES_INFO, popoverHref: config_json_1.default.documentation.modules })), [items, totalRowCount]);
|
|
76
105
|
const renderRowHeader = (0, react_1.useCallback)((row) => (react_1.default.createElement(RowHeader, { row: row, filters: filters, search: search, moduleMetric: moduleMetric, customComponentLink: CustomComponentLink })), [jobs, chunks, CustomComponentLink, filters, search, moduleMetric]);
|
|
@@ -82,24 +111,22 @@ const BundleModules = (props) => {
|
|
|
82
111
|
return allItems.find(({ key }) => key === entryId);
|
|
83
112
|
}, [allItems, entryId]);
|
|
84
113
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
85
|
-
react_1.default.createElement("
|
|
114
|
+
react_1.default.createElement(stack_1.Stack, { space: "xsmall", as: "section", className: rootClassName },
|
|
86
115
|
react_1.default.createElement(toolbar_1.Toolbar, { className: bundle_modules_module_css_1.default.toolbar, renderActions: ({ actionClassName }) => (react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxsmall", className: (0, classnames_1.default)(bundle_modules_module_css_1.default.dropdown, actionClassName) },
|
|
87
|
-
react_1.default.createElement(metrics_display_selector_1.MetricsDisplaySelector, { onSelect: setDisplayType, value: displayType }),
|
|
116
|
+
react_1.default.createElement(metrics_display_selector_1.MetricsDisplaySelector, { onSelect: setDisplayType, value: displayType.value, groupBy: displayType.groupBy, groups: DISPLAY_TYPE_GROUPS }),
|
|
88
117
|
react_1.default.createElement(metrics_table_options_1.MetricsTableOptions, { handleViewAll: resetAllFilters, handleResetFilters: resetFilters }))) },
|
|
89
118
|
react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxsmall" },
|
|
90
119
|
react_1.default.createElement(input_search_1.InputSearch, { className: bundle_modules_module_css_1.default.toolbarSearch, placeholder: I18N_MODULES.SEARCH, defaultValue: search, onChange: updateSearch }),
|
|
91
120
|
react_1.default.createElement(filters_1.Filters, { className: bundle_modules_module_css_1.default.tableDropdown, filters: filterFieldsData, onChange: updateFilters }))),
|
|
92
|
-
react_1.default.createElement(box_1.Box, {
|
|
93
|
-
react_1.default.createElement(
|
|
94
|
-
react_1.default.createElement(
|
|
95
|
-
react_1.default.createElement(
|
|
96
|
-
|
|
97
|
-
react_1.default.createElement(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
react_1.default.createElement(
|
|
101
|
-
react_1.default.createElement(metrics_table_header_1.MetricsTableHeader, { metricTitle: metricsTableTitle, showSum: true, jobs: jobs, rows: items })),
|
|
102
|
-
react_1.default.createElement(metrics_treemap_1.MetricsTreemap, { emptyMessage: emptyMessage, items: items, onItemClick: showEntryInfo })))),
|
|
121
|
+
react_1.default.createElement(box_1.Box, { outline: true, as: "main" },
|
|
122
|
+
react_1.default.createElement(box_1.Box, { padding: ['xsmall', 'small'], className: bundle_modules_module_css_1.default.metricSelector },
|
|
123
|
+
react_1.default.createElement(control_group_1.ControlGroup, { as: "nav" },
|
|
124
|
+
react_1.default.createElement(button_1.Button, { outline: true, active: moduleMetric === bundle_modules_constants_1.ModuleMetric.SIZE, size: "small", type: "button", onClick: () => setModuleMetric(bundle_modules_constants_1.ModuleMetric.SIZE) },
|
|
125
|
+
react_1.default.createElement(tooltip_1.Tooltip, { title: "Size (excluding duplicate modules)" }, "Module size")),
|
|
126
|
+
react_1.default.createElement(button_1.Button, { outline: true, active: moduleMetric === bundle_modules_constants_1.ModuleMetric.TOTAL_SIZE, size: "small", type: "button", onClick: () => setModuleMetric(bundle_modules_constants_1.ModuleMetric.TOTAL_SIZE) },
|
|
127
|
+
react_1.default.createElement(tooltip_1.Tooltip, { title: "Size (including duplicate modules)" }, "Module total size")))),
|
|
128
|
+
displayType.value === constants_1.MetricsDisplayType.TABLE && (react_1.default.createElement(metrics_table_1.MetricsTable, { className: bundle_modules_module_css_1.default.table, items: items, runs: jobs, renderRowHeader: renderRowHeader, emptyMessage: emptyMessage, showHeaderSum: true, title: metricsTableTitle, sort: sort, updateSort: updateSort })),
|
|
129
|
+
displayType.value === constants_1.MetricsDisplayType.TREEMAP && (react_1.default.createElement(ViewMetricsTreemap, { metricsTableTitle: metricsTableTitle, jobs: jobs, items: items, displayType: displayType, emptyMessage: emptyMessage, showEntryInfo: showEntryInfo, updateSearch: updateSearch, search: search })))),
|
|
103
130
|
entryItem && (react_1.default.createElement(module_info_1.ModuleInfo, { className: bundle_modules_module_css_1.default.moduleInfo, item: entryItem, chunks: chunks, chunkIds: chunks?.map(({ id }) => id), labels: jobLabels, customComponentLink: CustomComponentLink, onClose: hideEntryInfo }))));
|
|
104
131
|
};
|
|
105
132
|
exports.BundleModules = BundleModules;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-modules.js","sourceRoot":"","sources":["../../../src/components/bundle-modules/bundle-modules.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAoD;AACpD,4DAA4B;AAC5B,+
|
|
1
|
+
{"version":3,"file":"bundle-modules.js","sourceRoot":"","sources":["../../../src/components/bundle-modules/bundle-modules.tsx"],"names":[],"mappings":"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"}
|
|
@@ -26,15 +26,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.generateFilterFieldsData = exports.generateFilters = exports.
|
|
29
|
+
exports.generateFilterFieldsData = exports.generateFilters = exports.generateGetRowFilter = exports.getCustomSort = exports.addRowFlags = void 0;
|
|
30
30
|
const intersection_1 = __importDefault(require("lodash/intersection"));
|
|
31
31
|
const get_1 = __importDefault(require("lodash/get"));
|
|
32
32
|
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
33
33
|
const union_1 = __importDefault(require("lodash/union"));
|
|
34
|
-
const uniqBy_1 = __importDefault(require("lodash/uniqBy"));
|
|
35
34
|
const orderBy_1 = __importDefault(require("lodash/orderBy"));
|
|
36
|
-
const webpack_1 = require("@bundle-stats/utils/lib-esm/webpack");
|
|
37
35
|
const utils_1 = require("@bundle-stats/utils");
|
|
36
|
+
const webpack_1 = require("@bundle-stats/utils/lib-esm/webpack");
|
|
38
37
|
const I18N = __importStar(require("./bundle-modules.i18n"));
|
|
39
38
|
const addRowFlags = (row) => {
|
|
40
39
|
const { key, runs } = row;
|
|
@@ -80,16 +79,6 @@ const generateGetRowFilter = ({ chunkIds }) => (filters) => {
|
|
|
80
79
|
};
|
|
81
80
|
};
|
|
82
81
|
exports.generateGetRowFilter = generateGetRowFilter;
|
|
83
|
-
const extractChunkData = (jobs) => {
|
|
84
|
-
const jobChunks = jobs.map((job) => job?.meta?.webpack?.chunks || []);
|
|
85
|
-
const chunks = (0, uniqBy_1.default)(jobChunks.flat(), ({ id }) => id);
|
|
86
|
-
const chunkIds = chunks?.map(({ id }) => id);
|
|
87
|
-
return {
|
|
88
|
-
chunks,
|
|
89
|
-
chunkIds,
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
exports.extractChunkData = extractChunkData;
|
|
93
82
|
const generateFilters = (chunkIds, multipleJobs) => {
|
|
94
83
|
const allEntriesFilters = {
|
|
95
84
|
[utils_1.MODULE_FILTERS.CHANGED]: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-modules.utils.js","sourceRoot":"","sources":["../../../src/components/bundle-modules/bundle-modules.utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAA+C;AAC/C,qDAA6B;AAC7B,6DAAqC;AACrC,yDAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"bundle-modules.utils.js","sourceRoot":"","sources":["../../../src/components/bundle-modules/bundle-modules.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.BundleModules = void 0;
|
|
27
27
|
const react_1 = __importStar(require("react"));
|
|
28
28
|
const webpack = __importStar(require("@bundle-stats/utils/lib-esm/webpack"));
|
|
29
|
+
const jobs_1 = require("../../utils/jobs");
|
|
29
30
|
const rows_filter_1 = require("../../hooks/rows-filter");
|
|
30
31
|
const rows_sort_1 = require("../../hooks/rows-sort");
|
|
31
32
|
const search_params_1 = require("../../hooks/search-params");
|
|
@@ -51,7 +52,7 @@ function useModuleMetric(params) {
|
|
|
51
52
|
const BundleModules = (props) => {
|
|
52
53
|
const { jobs, filters, search, setState, sortBy, direction, metric = '', ...restProps } = props;
|
|
53
54
|
const [moduleMetric, setModuleMetric] = useModuleMetric({ metric, setState });
|
|
54
|
-
const { chunks, chunkIds } = (0, react_1.useMemo)(() => (0,
|
|
55
|
+
const { chunks, chunkIds } = (0, react_1.useMemo)(() => (0, jobs_1.getJobsChunksData)(jobs), [jobs]);
|
|
55
56
|
const { defaultFilters, allEntriesFilters } = (0, react_1.useMemo)(() => (0, bundle_modules_utils_1.generateFilters)(chunkIds, jobs.length > 1), [chunkIds, jobs]);
|
|
56
57
|
const searchParams = (0, search_params_1.useSearchParams)({
|
|
57
58
|
search,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/bundle-modules/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAoD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/bundle-modules/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,9 @@ const classnames_1 = __importDefault(require("classnames"));
|
|
|
33
33
|
const utils_1 = require("@bundle-stats/utils");
|
|
34
34
|
const config_json_1 = __importDefault(require("../../config.json"));
|
|
35
35
|
const i18n_1 = __importDefault(require("../../i18n"));
|
|
36
|
+
const box_1 = require("../../layout/box");
|
|
36
37
|
const flex_stack_1 = require("../../layout/flex-stack");
|
|
38
|
+
const stack_1 = require("../../layout/stack");
|
|
37
39
|
const input_search_1 = require("../../ui/input-search");
|
|
38
40
|
const empty_set_1 = require("../../ui/empty-set");
|
|
39
41
|
const filters_1 = require("../../ui/filters");
|
|
@@ -52,6 +54,9 @@ const metrics_display_selector_1 = require("../metrics-display-selector");
|
|
|
52
54
|
const constants_1 = require("../../constants");
|
|
53
55
|
const metrics_treemap_1 = require("../metrics-treemap");
|
|
54
56
|
const metrics_display_type_1 = require("../../hooks/metrics-display-type");
|
|
57
|
+
const DISPLAY_TYPE_GROUPS = {
|
|
58
|
+
[constants_1.MetricsDisplayType.TREEMAP]: ['folder'],
|
|
59
|
+
};
|
|
55
60
|
const getDropdownFilters = ({ compareMode, filters }) => ({
|
|
56
61
|
[utils_1.PACKAGE_FILTERS.CHANGED]: {
|
|
57
62
|
label: 'Changed',
|
|
@@ -105,10 +110,47 @@ RowHeader.propTypes = {
|
|
|
105
110
|
filters: prop_types_1.default.object,
|
|
106
111
|
search: prop_types_1.default.string,
|
|
107
112
|
};
|
|
113
|
+
const ViewMetricsTreemap = (props) => {
|
|
114
|
+
const { metricsTableTitle, jobs, items, displayType, emptyMessage, showEntryInfo, updateSearch, search } = props;
|
|
115
|
+
const treeNodes = (0, react_1.useMemo)(() => {
|
|
116
|
+
if (displayType.groupBy === 'folder') {
|
|
117
|
+
return (0, metrics_treemap_1.getTreemapNodesGroupedByPath)(items);
|
|
118
|
+
}
|
|
119
|
+
return (0, metrics_treemap_1.getTreemapNodes)(items);
|
|
120
|
+
}, [items, displayType.groupBy]);
|
|
121
|
+
const onGroupClick = (0, react_1.useCallback)((groupPath) => {
|
|
122
|
+
if (groupPath === '') {
|
|
123
|
+
updateSearch('');
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const newSearch = `^${groupPath}/`;
|
|
127
|
+
if (newSearch === search) {
|
|
128
|
+
updateSearch('');
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
updateSearch(newSearch);
|
|
132
|
+
}, [updateSearch, search]);
|
|
133
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
134
|
+
react_1.default.createElement(table_1.Table, { compact: true },
|
|
135
|
+
react_1.default.createElement(metrics_table_header_1.MetricsTableHeader, { metricTitle: metricsTableTitle, showSum: true, jobs: jobs, rows: items })),
|
|
136
|
+
react_1.default.createElement(metrics_treemap_1.MetricsTreemap, { treeNodes: treeNodes, nested: Boolean(displayType.groupBy), emptyMessage: emptyMessage, onItemClick: showEntryInfo, onGroupClick: onGroupClick })));
|
|
137
|
+
};
|
|
138
|
+
ViewMetricsTreemap.propTypes = {
|
|
139
|
+
jobs: prop_types_1.default.arrayOf(prop_types_1.default.object).isRequired,
|
|
140
|
+
items: prop_types_1.default.arrayOf(prop_types_1.default.object).isRequired,
|
|
141
|
+
metricsTableTitle: prop_types_1.default.node.isRequired,
|
|
142
|
+
displayType: prop_types_1.default.shape({
|
|
143
|
+
groupBy: prop_types_1.default.string,
|
|
144
|
+
}).isRequired,
|
|
145
|
+
emptyMessage: prop_types_1.default.node.isRequired,
|
|
146
|
+
showEntryInfo: prop_types_1.default.func.isRequired,
|
|
147
|
+
updateSearch: prop_types_1.default.func.isRequired,
|
|
148
|
+
search: prop_types_1.default.string.isRequired,
|
|
149
|
+
};
|
|
108
150
|
const BundlePackages = (props) => {
|
|
109
151
|
const { className, jobs, items, updateFilters, resetFilters, resetAllFilters, totalRowCount, filters, sort, updateSort, search, updateSearch, hasActiveFilters, customComponentLink: CustomComponentLink, entryId, allItems, hideEntryInfo, showEntryInfo, } = props;
|
|
110
152
|
const jobLabels = jobs?.map((job) => job?.label);
|
|
111
|
-
const [displayType, setDisplayType] = (0, metrics_display_type_1.useMetricsDisplayType)();
|
|
153
|
+
const [displayType, setDisplayType] = (0, metrics_display_type_1.useMetricsDisplayType)(DISPLAY_TYPE_GROUPS);
|
|
112
154
|
const dropdownFilters = (0, react_1.useMemo)(() => getDropdownFilters({ compareMode: jobs?.length > 1, filters }), [jobs, filters]);
|
|
113
155
|
const metricsTableTitle = (0, react_1.useMemo)(() => (react_1.default.createElement(metrics_table_title_1.MetricsTableTitle, { title: i18n_1.default.PACKAGES, info: `${items.length}/${totalRowCount}`, popoverInfo: i18n_1.default.PACKAGES_INFO, popoverHref: config_json_1.default.documentation.packages })), [items, totalRowCount]);
|
|
114
156
|
const renderRowHeader = (0, react_1.useCallback)((row) => (react_1.default.createElement(RowHeader, { row: row, labels: jobLabels, CustomComponentLink: CustomComponentLink, filters: filters, search: search })), [CustomComponentLink, jobLabels, filters, search]);
|
|
@@ -120,19 +162,16 @@ const BundlePackages = (props) => {
|
|
|
120
162
|
return allItems.find(({ key }) => key === entryId);
|
|
121
163
|
}, [allItems, entryId]);
|
|
122
164
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
123
|
-
react_1.default.createElement("section",
|
|
165
|
+
react_1.default.createElement(stack_1.Stack, { space: "xsmall", as: "section", className: (0, classnames_1.default)(bundle_packages_module_css_1.default.root, className) },
|
|
124
166
|
react_1.default.createElement(toolbar_1.Toolbar, { className: bundle_packages_module_css_1.default.toolbar, renderActions: ({ actionClassName }) => (react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxsmall", className: (0, classnames_1.default)(bundle_packages_module_css_1.default.dropdown, actionClassName) },
|
|
125
|
-
react_1.default.createElement(metrics_display_selector_1.MetricsDisplaySelector, { onSelect: setDisplayType, value: displayType }),
|
|
167
|
+
react_1.default.createElement(metrics_display_selector_1.MetricsDisplaySelector, { onSelect: setDisplayType, value: displayType.value, groupBy: displayType.groupBy, groups: DISPLAY_TYPE_GROUPS }),
|
|
126
168
|
react_1.default.createElement(metrics_table_options_1.MetricsTableOptions, { handleViewAll: resetAllFilters, handleResetFilters: resetFilters }))) },
|
|
127
169
|
react_1.default.createElement(flex_stack_1.FlexStack, { space: "xxsmall" },
|
|
128
170
|
react_1.default.createElement(input_search_1.InputSearch, { className: bundle_packages_module_css_1.default.toolbarSearch, placeholder: bundle_packages_i18n_1.SEARCH_PLACEHOLDER, defaultValue: search, onChange: updateSearch }),
|
|
129
171
|
react_1.default.createElement(filters_1.Filters, { filters: dropdownFilters, label: `Filters (${items.length}/${totalRowCount})`, onChange: updateFilters, hasActiveFilters: hasActiveFilters }))),
|
|
130
|
-
react_1.default.createElement("main"
|
|
131
|
-
displayType === constants_1.MetricsDisplayType.TABLE && (react_1.default.createElement(metrics_table_1.MetricsTable, { runs: jobs, items: items, emptyMessage: emptyMessage, renderRowHeader: renderRowHeader, showHeaderSum: true, title: metricsTableTitle, sort: sort, updateSort: updateSort })),
|
|
132
|
-
displayType === constants_1.MetricsDisplayType.TREEMAP && (react_1.default.createElement(
|
|
133
|
-
react_1.default.createElement(table_1.Table, { compact: true },
|
|
134
|
-
react_1.default.createElement(metrics_table_header_1.MetricsTableHeader, { metricTitle: metricsTableTitle, showSum: true, jobs: jobs, rows: items })),
|
|
135
|
-
react_1.default.createElement(metrics_treemap_1.MetricsTreemap, { emptyMessage: emptyMessage, items: items, onItemClick: showEntryInfo }))))),
|
|
172
|
+
react_1.default.createElement(box_1.Box, { outline: true, as: "main" },
|
|
173
|
+
displayType.value === constants_1.MetricsDisplayType.TABLE && (react_1.default.createElement(metrics_table_1.MetricsTable, { runs: jobs, items: items, emptyMessage: emptyMessage, renderRowHeader: renderRowHeader, showHeaderSum: true, title: metricsTableTitle, sort: sort, updateSort: updateSort })),
|
|
174
|
+
displayType.value === constants_1.MetricsDisplayType.TREEMAP && (react_1.default.createElement(ViewMetricsTreemap, { jobs: jobs, items: items, displayType: displayType, emptyMessage: emptyMessage, showEntryInfo: showEntryInfo, updateSearch: updateSearch, search: search })))),
|
|
136
175
|
entryItem && (react_1.default.createElement(package_info_1.PackageInfo, { className: bundle_packages_module_css_1.default.packageInfo, item: entryItem, labels: jobLabels, customComponentLink: CustomComponentLink, onClose: hideEntryInfo }))));
|
|
137
176
|
};
|
|
138
177
|
exports.BundlePackages = BundlePackages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-packages.js","sourceRoot":"","sources":["../../../src/components/bundle-packages/bundle-packages.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAoD;AACpD,4DAAmC;AACnC,4DAA4B;AAC5B,+CAA+F;AAE/F,oEAAuC;AACvC,sDAA8B;AAC9B,wDAAoD;AACpD,wDAAoD;AACpD,kDAA8C;AAC9C,8CAA2C;AAC3C,sCAAmC;AACnC,0CAAuC;AACvC,8CAA2C;AAC3C,sDAAkD;AAClD,oDAAgD;AAChD,kEAA6D;AAC7D,oEAA+D;AAC/D,gEAA2D;AAC3D,kDAA8C;AAC9C,iEAA4D;AAC5D,8FAA+C;AAC/C,0EAAqE;AACrE,+CAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"bundle-packages.js","sourceRoot":"","sources":["../../../src/components/bundle-packages/bundle-packages.jsx"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const react_1 = __importDefault(require("react"));
|
|
|
8
8
|
const prop_types_1 = __importDefault(require("prop-types"));
|
|
9
9
|
const classnames_1 = __importDefault(require("classnames"));
|
|
10
10
|
const delta_module_css_1 = __importDefault(require("./delta.module.css"));
|
|
11
|
-
const Delta = ({ className, displayValue, deltaType, inverted }) => {
|
|
11
|
+
const Delta = ({ className = '', displayValue, deltaType, inverted = false }) => {
|
|
12
12
|
const rootClassName = (0, classnames_1.default)(delta_module_css_1.default.root, className, inverted && delta_module_css_1.default.inverted, delta_module_css_1.default[deltaType]);
|
|
13
13
|
return react_1.default.createElement("span", { className: rootClassName }, displayValue);
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../../../src/components/delta/delta.jsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAAmC;AACnC,4DAA4B;AAE5B,0EAAqC;AAE9B,MAAM,KAAK,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../../../src/components/delta/delta.jsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4DAAmC;AACnC,4DAA4B;AAE5B,0EAAqC;AAE9B,MAAM,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE;IACrF,MAAM,aAAa,GAAG,IAAA,oBAAE,EAAC,0BAAG,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,IAAI,0BAAG,CAAC,QAAQ,EAAE,0BAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACxF,OAAO,wCAAM,SAAS,EAAE,aAAa,IAAG,YAAY,CAAQ,CAAC;AAC/D,CAAC,CAAC;AAHW,QAAA,KAAK,SAGhB;AAEF,aAAK,CAAC,YAAY,GAAG;IACnB,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,aAAK,CAAC,SAAS,GAAG;IAChB,SAAS,EAAE,oBAAS,CAAC,MAAM;IAC3B,YAAY,EAAE,oBAAS,CAAC,MAAM,CAAC,UAAU;IACzC,SAAS,EAAE,oBAAS,CAAC,MAAM,CAAC,UAAU;IACtC,QAAQ,EAAE,oBAAS,CAAC,IAAI;CACzB,CAAC"}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
white-space: nowrap;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
+
.CHANGE {
|
|
8
|
+
color: var(--color-info);
|
|
9
|
+
}
|
|
10
|
+
|
|
7
11
|
.HIGH_NEGATIVE {
|
|
8
12
|
color: var(--color-red-dark);
|
|
9
13
|
}
|
|
@@ -29,11 +33,16 @@
|
|
|
29
33
|
}
|
|
30
34
|
|
|
31
35
|
.inverted {
|
|
32
|
-
|
|
36
|
+
padding: 0 2px;
|
|
37
|
+
border-radius: var(--radius-xsmall);
|
|
33
38
|
background-color: var(--color-gray-ultra-light);
|
|
34
39
|
color: var(--color-light);
|
|
35
40
|
}
|
|
36
41
|
|
|
42
|
+
.inverted.CHANGE {
|
|
43
|
+
background: var(--color-info-light);
|
|
44
|
+
}
|
|
45
|
+
|
|
37
46
|
.inverted.HIGH_NEGATIVE {
|
|
38
47
|
background: var(--color-red-dark);
|
|
39
48
|
}
|
|
@@ -9,13 +9,50 @@ const classnames_1 = __importDefault(require("classnames"));
|
|
|
9
9
|
const constants_1 = require("../../constants");
|
|
10
10
|
const button_1 = require("../../ui/button");
|
|
11
11
|
const control_group_1 = require("../../ui/control-group");
|
|
12
|
+
const dropdown_1 = require("../../ui/dropdown");
|
|
12
13
|
const icon_1 = require("../../ui/icon");
|
|
13
14
|
const metrics_display_selector_module_css_1 = __importDefault(require("./metrics-display-selector.module.css"));
|
|
15
|
+
const layout_1 = require("../../layout");
|
|
16
|
+
const DEFAULT_GROUP_BY = '';
|
|
17
|
+
const METRICS_DISPLAY_MAP = {
|
|
18
|
+
[constants_1.MetricsDisplayType.TABLE]: {
|
|
19
|
+
glyph: icon_1.Icon.ICONS.TABLE,
|
|
20
|
+
label: 'Table',
|
|
21
|
+
},
|
|
22
|
+
[constants_1.MetricsDisplayType.TREEMAP]: {
|
|
23
|
+
glyph: icon_1.Icon.ICONS.TREEMAP,
|
|
24
|
+
label: 'Treemap',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
const displayTypes = Object.values(constants_1.MetricsDisplayType);
|
|
14
28
|
const MetricsDisplaySelector = (props) => {
|
|
15
|
-
const {
|
|
16
|
-
return (react_1.default.createElement(control_group_1.ControlGroup, {
|
|
17
|
-
|
|
18
|
-
|
|
29
|
+
const { value, groupBy = DEFAULT_GROUP_BY, groups = {}, onSelect, ...restProps } = props;
|
|
30
|
+
return (react_1.default.createElement(control_group_1.ControlGroup, { ...restProps }, displayTypes.map((displayType, index) => {
|
|
31
|
+
const displayGroups = groups?.[displayType];
|
|
32
|
+
const displayProps = METRICS_DISPLAY_MAP[displayType];
|
|
33
|
+
const isLast = displayTypes.length - 1 === index;
|
|
34
|
+
const isActive = displayType === value;
|
|
35
|
+
if (!displayGroups || displayGroups.length === 0) {
|
|
36
|
+
return (react_1.default.createElement(button_1.Button, { outline: true, active: isActive, size: "small", type: "button", glyph: displayProps.glyph, onClick: () => onSelect(displayType), className: isLast && metrics_display_selector_module_css_1.default.itemLast, key: displayType }, displayProps.label));
|
|
37
|
+
}
|
|
38
|
+
const displayGroupsData = [
|
|
39
|
+
{
|
|
40
|
+
value: DEFAULT_GROUP_BY,
|
|
41
|
+
label: 'No groups',
|
|
42
|
+
},
|
|
43
|
+
...displayGroups.map((displayGroup) => ({
|
|
44
|
+
value: displayGroup,
|
|
45
|
+
label: `Group by ${displayGroup}`,
|
|
46
|
+
})),
|
|
47
|
+
];
|
|
48
|
+
return (react_1.default.createElement(dropdown_1.Dropdown, { glyph: displayProps.glyph, label: displayProps.label, className: (0, classnames_1.default)(isLast && metrics_display_selector_module_css_1.default.itemLast, isActive && metrics_display_selector_module_css_1.default.buttonActive), key: displayType }, displayGroupsData.map((displayGroupData) => {
|
|
49
|
+
const isGroupActive = isActive && displayGroupData.value === groupBy;
|
|
50
|
+
return (react_1.default.createElement(dropdown_1.DropdownItem, { onClick: () => onSelect(displayType, displayGroupData.value), isActive: isGroupActive, className: (0, classnames_1.default)(metrics_display_selector_module_css_1.default.dropdownItem, isGroupActive && metrics_display_selector_module_css_1.default.dropdownItemActive), key: displayGroupData.value },
|
|
51
|
+
react_1.default.createElement(layout_1.FlexStack, { space: "xxxsmall", alignItems: "center" },
|
|
52
|
+
react_1.default.createElement(icon_1.Icon, { glyph: icon_1.Icon.ICONS.CHECK, size: "small", className: metrics_display_selector_module_css_1.default.dropdownItemIcon }),
|
|
53
|
+
react_1.default.createElement("span", null, displayGroupData.label))));
|
|
54
|
+
})));
|
|
55
|
+
})));
|
|
19
56
|
};
|
|
20
57
|
exports.MetricsDisplaySelector = MetricsDisplaySelector;
|
|
21
58
|
//# sourceMappingURL=metrics-display-selector.js.map
|