@bundle-stats/ui 3.4.0-alpha.3 → 3.4.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.
- package/lib/app/app.js +3 -1
- package/lib/app/header/header.js +2 -1
- package/lib/components/budget-info/budget-info.js +11 -17
- package/lib/components/budget-info/budget-info.stories.js +27 -12
- package/lib/components/budget-insights/budget-insights.js +37 -75
- package/lib/components/budget-insights/budget-insights.module.css +10 -2
- package/lib/components/budget-insights/budget-insights.stories.js +124 -63
- package/lib/components/bundle-assets/bundle-assets.js +2 -1
- package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.js +3 -4
- package/lib/components/bundle-modules/bundle-modules.js +1 -1
- package/lib/components/summary/summary.js +6 -12
- package/lib/components/summary/summary.module.css +1 -45
- package/lib/components/summary/summary.stories.js +41 -13
- package/lib/components/summary-item/summary-item.js +14 -22
- package/lib/components/summary-item/summary-item.module.css +25 -7
- package/lib/components/summary-item/summary-item.stories.js +20 -6
- package/lib/ui/hover-card/hover-card.js +7 -1
- package/lib-esm/app/app.js +3 -1
- package/lib-esm/app/header/header.js +2 -1
- package/lib-esm/components/budget-info/budget-info.js +11 -12
- package/lib-esm/components/budget-info/budget-info.stories.js +27 -12
- package/lib-esm/components/budget-insights/budget-insights.js +35 -71
- package/lib-esm/components/budget-insights/budget-insights.module.css +10 -2
- package/lib-esm/components/budget-insights/budget-insights.stories.js +115 -55
- package/lib-esm/components/bundle-assets/bundle-assets.js +2 -1
- package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js +3 -4
- package/lib-esm/components/bundle-modules/bundle-modules.js +1 -1
- package/lib-esm/components/summary/summary.js +6 -11
- package/lib-esm/components/summary/summary.module.css +1 -45
- package/lib-esm/components/summary/summary.stories.js +41 -13
- package/lib-esm/components/summary-item/summary-item.js +11 -20
- package/lib-esm/components/summary-item/summary-item.module.css +25 -7
- package/lib-esm/components/summary-item/summary-item.stories.js +20 -6
- package/lib-esm/ui/hover-card/hover-card.js +7 -1
- package/package.json +25 -25
- package/src/app/app.jsx +2 -2
- package/src/app/header/header.jsx +1 -1
- package/src/components/budget-info/budget-info.jsx +12 -22
- package/src/components/budget-insights/budget-insights.jsx +49 -82
- package/src/components/budget-insights/budget-insights.module.css +10 -2
- package/src/components/bundle-assets/bundle-assets.jsx +1 -1
- package/src/components/bundle-assets-totals-table/bundle-assets-totals-table.jsx +3 -3
- package/src/components/bundle-modules/bundle-modules.jsx +1 -1
- package/src/components/summary/summary.jsx +13 -17
- package/src/components/summary/summary.module.css +1 -45
- package/src/components/summary-item/summary-item.jsx +11 -17
- package/src/components/summary-item/summary-item.module.css +25 -7
- package/src/ui/hover-card/hover-card.jsx +5 -0
package/lib/app/app.js
CHANGED
|
@@ -109,6 +109,7 @@ var Layout = function Layout(_ref) {
|
|
|
109
109
|
|
|
110
110
|
Layout.propTypes = {
|
|
111
111
|
jobs: _propTypes["default"].arrayOf(_propTypes["default"].object),
|
|
112
|
+
// eslint-disable-line react/forbid-prop-types
|
|
112
113
|
version: _propTypes["default"].string
|
|
113
114
|
};
|
|
114
115
|
Layout.defaultProps = {
|
|
@@ -135,7 +136,8 @@ var JobsProvider = function JobsProvider(_ref2) {
|
|
|
135
136
|
};
|
|
136
137
|
|
|
137
138
|
JobsProvider.propTypes = {
|
|
138
|
-
jobs: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired
|
|
139
|
+
jobs: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired // eslint-disable-line react/forbid-prop-types
|
|
140
|
+
|
|
139
141
|
};
|
|
140
142
|
|
|
141
143
|
var OverviewContent = function OverviewContent() {
|
package/lib/app/header/header.js
CHANGED
|
@@ -36,7 +36,8 @@ var Header = function Header(_ref) {
|
|
|
36
36
|
exports.Header = Header;
|
|
37
37
|
Header.propTypes = {
|
|
38
38
|
className: _propTypes["default"].string,
|
|
39
|
-
jobs: _propTypes["default"].arrayOf(_propTypes["default"].object)
|
|
39
|
+
jobs: _propTypes["default"].arrayOf(_propTypes["default"].object) // eslint-disable-line react/forbid-prop-types
|
|
40
|
+
|
|
40
41
|
};
|
|
41
42
|
Header.defaultProps = {
|
|
42
43
|
className: '',
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -15,8 +13,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
15
13
|
|
|
16
14
|
var _utils = require("@bundle-stats/utils");
|
|
17
15
|
|
|
18
|
-
var budgetsInsightsTransformer = _interopRequireWildcard(require("@bundle-stats/utils/lib-esm/transformers/budgets-insights"));
|
|
19
|
-
|
|
20
16
|
var _icon = require("../../ui/icon");
|
|
21
17
|
|
|
22
18
|
var _tooltip = require("../../ui/tooltip");
|
|
@@ -25,10 +21,6 @@ var _budgetInfoModule = _interopRequireDefault(require("./budget-info.module.css
|
|
|
25
21
|
|
|
26
22
|
var _INSIGHT_TYPE_MAP;
|
|
27
23
|
|
|
28
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
-
|
|
30
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
-
|
|
32
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
33
25
|
|
|
34
26
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -47,17 +39,14 @@ var INSIGHT_TYPE_MAP = (_INSIGHT_TYPE_MAP = {}, _defineProperty(_INSIGHT_TYPE_MA
|
|
|
47
39
|
var BudgetInfo = function BudgetInfo(_ref) {
|
|
48
40
|
var _ref$className = _ref.className,
|
|
49
41
|
className = _ref$className === void 0 ? '' : _ref$className,
|
|
50
|
-
metricId = _ref.metricId,
|
|
51
42
|
budgetInsight = _ref.budgetInsight;
|
|
52
|
-
var
|
|
53
|
-
var _INSIGHT_TYPE_MAP$bud = INSIGHT_TYPE_MAP[budgetInsightInfo.type],
|
|
43
|
+
var _INSIGHT_TYPE_MAP$bud = INSIGHT_TYPE_MAP[budgetInsight.type],
|
|
54
44
|
insightTypeClassName = _INSIGHT_TYPE_MAP$bud.className,
|
|
55
45
|
glyph = _INSIGHT_TYPE_MAP$bud.glyph;
|
|
56
46
|
var rootClassName = (0, _classnames["default"])(_budgetInfoModule["default"].root, insightTypeClassName, className);
|
|
57
|
-
var messageData = budgetInsightInfo.message.data;
|
|
58
47
|
return /*#__PURE__*/_react["default"].createElement(_tooltip.Tooltip, {
|
|
59
48
|
className: rootClassName,
|
|
60
|
-
title:
|
|
49
|
+
title: budgetInsight.message.text
|
|
61
50
|
}, /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
|
|
62
51
|
className: _budgetInfoModule["default"].icon,
|
|
63
52
|
glyph: glyph,
|
|
@@ -67,11 +56,16 @@ var BudgetInfo = function BudgetInfo(_ref) {
|
|
|
67
56
|
|
|
68
57
|
exports.BudgetInfo = BudgetInfo;
|
|
69
58
|
BudgetInfo.propTypes = {
|
|
70
|
-
metricId: _propTypes["default"].string.isRequired,
|
|
71
59
|
budgetInsight: _propTypes["default"].shape({
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
60
|
+
type: _propTypes["default"].string,
|
|
61
|
+
message: _propTypes["default"].shape({
|
|
62
|
+
text: _propTypes["default"].string
|
|
63
|
+
}),
|
|
64
|
+
data: _propTypes["default"].shape({
|
|
65
|
+
currentValue: _propTypes["default"].number,
|
|
66
|
+
budgetValue: _propTypes["default"].number,
|
|
67
|
+
failed: _propTypes["default"].bool
|
|
68
|
+
})
|
|
75
69
|
}).isRequired,
|
|
76
70
|
className: _propTypes["default"].string
|
|
77
71
|
};
|
|
@@ -14,31 +14,46 @@ var stories = (0, _react2.storiesOf)('Components/BudgetInfo', module);
|
|
|
14
14
|
stories.addDecorator((0, _stories.getWrapperDecorator)());
|
|
15
15
|
stories.add('default', function () {
|
|
16
16
|
return /*#__PURE__*/_react["default"].createElement(_.BudgetInfo, {
|
|
17
|
-
metricId: "webpack.assetCount",
|
|
18
17
|
budgetInsight: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
type: 'SUCCESS',
|
|
19
|
+
message: {
|
|
20
|
+
text: 'Metric is under the budget'
|
|
21
|
+
},
|
|
22
|
+
data: {
|
|
23
|
+
budgetValue: 300,
|
|
24
|
+
currentValue: 250,
|
|
25
|
+
failed: false
|
|
26
|
+
}
|
|
22
27
|
}
|
|
23
28
|
});
|
|
24
29
|
});
|
|
25
30
|
stories.add('error', function () {
|
|
26
31
|
return /*#__PURE__*/_react["default"].createElement(_.BudgetInfo, {
|
|
27
|
-
metricId: "webpack.assetCount",
|
|
28
32
|
budgetInsight: {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
type: 'ERROR',
|
|
34
|
+
message: {
|
|
35
|
+
text: 'Metric is over the budget'
|
|
36
|
+
},
|
|
37
|
+
data: {
|
|
38
|
+
budgetValue: 300,
|
|
39
|
+
currentValue: 250,
|
|
40
|
+
failed: false
|
|
41
|
+
}
|
|
32
42
|
}
|
|
33
43
|
});
|
|
34
44
|
});
|
|
35
45
|
stories.add('warning', function () {
|
|
36
46
|
return /*#__PURE__*/_react["default"].createElement(_.BudgetInfo, {
|
|
37
|
-
metricId: "webpack.assetCount",
|
|
38
47
|
budgetInsight: {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
48
|
+
type: 'WARNING',
|
|
49
|
+
message: {
|
|
50
|
+
text: 'Metric is equal the budget'
|
|
51
|
+
},
|
|
52
|
+
data: {
|
|
53
|
+
budgetValue: 300,
|
|
54
|
+
currentValue: 250,
|
|
55
|
+
failed: false
|
|
56
|
+
}
|
|
42
57
|
}
|
|
43
58
|
});
|
|
44
59
|
});
|
|
@@ -15,8 +15,6 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
15
15
|
|
|
16
16
|
var _utils = require("@bundle-stats/utils");
|
|
17
17
|
|
|
18
|
-
var budgetsInsightsTransformer = _interopRequireWildcard(require("@bundle-stats/utils/lib-esm/transformers/budgets-insights"));
|
|
19
|
-
|
|
20
18
|
var _box = require("../../layout/box");
|
|
21
19
|
|
|
22
20
|
var _stack = require("../../layout/stack");
|
|
@@ -54,35 +52,40 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
54
52
|
var Budget = function Budget(props) {
|
|
55
53
|
var className = props.className,
|
|
56
54
|
metricId = props.metricId,
|
|
57
|
-
|
|
55
|
+
budget = props.budget,
|
|
58
56
|
CustomLink = props.CustomLink;
|
|
59
57
|
|
|
60
58
|
var componentLinkOptions = _utils.METRIC_COMPONENT_LINKS.get(metricId);
|
|
61
59
|
|
|
62
|
-
var budgetInsightInfo = budgetsInsightsTransformer.getInfo(metricId, budgetInsight);
|
|
63
|
-
var messageData = budgetInsightInfo.message.data;
|
|
64
60
|
return /*#__PURE__*/_react["default"].createElement(CustomLink, _extends({
|
|
65
|
-
className: (0, _classnames["default"])(_budgetInsightsModule["default"].budget, className)
|
|
66
|
-
}, componentLinkOptions === null || componentLinkOptions === void 0 ? void 0 : componentLinkOptions.link),
|
|
61
|
+
className: (0, _classnames["default"])(_budgetInsightsModule["default"].budget, className, budget.type === 'SUCCESS' && _budgetInsightsModule["default"].budgetSuccess)
|
|
62
|
+
}, componentLinkOptions === null || componentLinkOptions === void 0 ? void 0 : componentLinkOptions.link), budget.message.text);
|
|
67
63
|
};
|
|
68
64
|
|
|
69
65
|
Budget.propTypes = {
|
|
70
66
|
className: _propTypes["default"].string,
|
|
71
67
|
metricId: _propTypes["default"].string.isRequired,
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
68
|
+
budget: _propTypes["default"].shape({
|
|
69
|
+
type: _propTypes["default"].string,
|
|
70
|
+
message: _propTypes["default"].shape({
|
|
71
|
+
text: _propTypes["default"].string
|
|
72
|
+
}),
|
|
73
|
+
data: _propTypes["default"].shape({
|
|
74
|
+
currentValue: _propTypes["default"].number.isRequired,
|
|
75
|
+
budgetValue: _propTypes["default"].number.isRequired,
|
|
76
|
+
failed: _propTypes["default"].bool.isRequired
|
|
77
|
+
})
|
|
76
78
|
}).isRequired,
|
|
77
79
|
CustomLink: _propTypes["default"].elementType.isRequired
|
|
78
80
|
};
|
|
79
81
|
Budget.defaultProps = {
|
|
80
82
|
className: ''
|
|
81
83
|
};
|
|
84
|
+
var BUDGET_ALERT_KIND = new Map([['ERROR', 'danger'], ['WARNING', 'warning'], ['SUCCESS', 'success']]);
|
|
85
|
+
var BUDGET_ICON = new Map([['ERROR', _icon.Icon.ICONS.ALERT_CIRCLE], ['WARNING', _icon.Icon.ICONS.WARNING], ['SUCCESS', _icon.Icon.ICONS.CHECK_CIRCLE]]);
|
|
82
86
|
|
|
83
|
-
var
|
|
87
|
+
var BudgetInsights = function BudgetInsights(props) {
|
|
84
88
|
var className = props.className,
|
|
85
|
-
kind = props.kind,
|
|
86
89
|
source = props.source,
|
|
87
90
|
budgets = props.budgets,
|
|
88
91
|
CustomLink = props.CustomLink;
|
|
@@ -92,11 +95,24 @@ var BudgetsGroup = function BudgetsGroup(props) {
|
|
|
92
95
|
showBudgets = _useState2[0],
|
|
93
96
|
setShowBudgets = _useState2[1];
|
|
94
97
|
|
|
95
|
-
var
|
|
98
|
+
var iconGlyph = BUDGET_ICON.get(budgets.type);
|
|
99
|
+
var alertKind = BUDGET_ALERT_KIND.get(budgets.type);
|
|
100
|
+
var rootClassName = (0, _classnames["default"])(_budgetInsightsModule["default"].group, className, _budgetInsightsModule["default"]["group-".concat(alertKind)]);
|
|
101
|
+
var budgetItems = (0, _react.useMemo)(function () {
|
|
102
|
+
var items = Object.entries(budgets.data); // When there are errors/warnings, sort budget items first
|
|
103
|
+
|
|
104
|
+
if (['ERROR', 'WARNING'].includes(budgets.type)) {
|
|
105
|
+
items.sort(function (a) {
|
|
106
|
+
return a[1].type === budgets.type ? -1 : 1;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return items;
|
|
111
|
+
}, [budgets]);
|
|
96
112
|
return /*#__PURE__*/_react["default"].createElement(_alert.Alert, {
|
|
97
|
-
kind:
|
|
113
|
+
kind: alertKind,
|
|
98
114
|
padding: "none",
|
|
99
|
-
className:
|
|
115
|
+
className: rootClassName
|
|
100
116
|
}, /*#__PURE__*/_react["default"].createElement(_box.Box, {
|
|
101
117
|
padding: ['xsmall', 'small'],
|
|
102
118
|
className: _budgetInsightsModule["default"].groupHeader,
|
|
@@ -108,17 +124,17 @@ var BudgetsGroup = function BudgetsGroup(props) {
|
|
|
108
124
|
}, /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
|
|
109
125
|
space: "xxsmall",
|
|
110
126
|
className: _budgetInsightsModule["default"].groupTitle
|
|
111
|
-
}, /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
|
|
127
|
+
}, iconGlyph && /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
|
|
112
128
|
className: _budgetInsightsModule["default"].groupIcon,
|
|
113
|
-
glyph:
|
|
114
|
-
}), /*#__PURE__*/_react["default"].createElement("span", null,
|
|
129
|
+
glyph: iconGlyph
|
|
130
|
+
}), /*#__PURE__*/_react["default"].createElement("span", null, budgets.message.text), /*#__PURE__*/_react["default"].createElement("span", {
|
|
115
131
|
className: _budgetInsightsModule["default"].groupTitleToggle
|
|
116
132
|
}, showBudgets ? 'hide' : 'show', " all"))), showBudgets && /*#__PURE__*/_react["default"].createElement(_box.Box, {
|
|
117
133
|
padding: ['xsmall', 'small'],
|
|
118
134
|
className: _budgetInsightsModule["default"].groupContent
|
|
119
135
|
}, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
|
|
120
136
|
space: "none"
|
|
121
|
-
},
|
|
137
|
+
}, budgetItems.map(function (_ref) {
|
|
122
138
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
123
139
|
key = _ref2[0],
|
|
124
140
|
budget = _ref2[1];
|
|
@@ -126,66 +142,12 @@ var BudgetsGroup = function BudgetsGroup(props) {
|
|
|
126
142
|
return /*#__PURE__*/_react["default"].createElement(Budget, {
|
|
127
143
|
key: key,
|
|
128
144
|
metricId: "".concat(source, ".").concat(key),
|
|
129
|
-
|
|
145
|
+
budget: budget,
|
|
130
146
|
CustomLink: CustomLink
|
|
131
147
|
});
|
|
132
148
|
}))));
|
|
133
149
|
};
|
|
134
150
|
|
|
135
|
-
BudgetsGroup.propTypes = {
|
|
136
|
-
className: _propTypes["default"].string,
|
|
137
|
-
kind: _propTypes["default"].oneOf(['success', 'danger']).isRequired,
|
|
138
|
-
source: _propTypes["default"].string.isRequired,
|
|
139
|
-
budgets: _propTypes["default"].object.isRequired,
|
|
140
|
-
// eslint-disable-line react/forbid-prop-types
|
|
141
|
-
CustomLink: _propTypes["default"].elementType.isRequired
|
|
142
|
-
};
|
|
143
|
-
BudgetsGroup.defaultProps = {
|
|
144
|
-
className: ''
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
var BudgetInsights = function BudgetInsights(props) {
|
|
148
|
-
var className = props.className,
|
|
149
|
-
source = props.source,
|
|
150
|
-
budgets = props.budgets,
|
|
151
|
-
CustomLink = props.CustomLink;
|
|
152
|
-
|
|
153
|
-
var _useMemo = (0, _react.useMemo)(function () {
|
|
154
|
-
var passed = [];
|
|
155
|
-
var failed = [];
|
|
156
|
-
Object.entries(budgets).forEach(function (_ref3) {
|
|
157
|
-
var _ref4 = _slicedToArray(_ref3, 2),
|
|
158
|
-
key = _ref4[0],
|
|
159
|
-
budget = _ref4[1];
|
|
160
|
-
|
|
161
|
-
if (budget.failed) {
|
|
162
|
-
failed.push([key, budget]);
|
|
163
|
-
} else {
|
|
164
|
-
passed.push([key, budget]);
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
return [failed, passed];
|
|
168
|
-
}, [budgets]),
|
|
169
|
-
_useMemo2 = _slicedToArray(_useMemo, 2),
|
|
170
|
-
failedBudgets = _useMemo2[0],
|
|
171
|
-
passedBudgets = _useMemo2[1];
|
|
172
|
-
|
|
173
|
-
return /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
|
|
174
|
-
className: className,
|
|
175
|
-
space: "xsmall"
|
|
176
|
-
}, failedBudgets.length > 0 && /*#__PURE__*/_react["default"].createElement(BudgetsGroup, {
|
|
177
|
-
kind: "danger",
|
|
178
|
-
source: source,
|
|
179
|
-
budgets: failedBudgets,
|
|
180
|
-
CustomLink: CustomLink
|
|
181
|
-
}), passedBudgets.length > 0 && /*#__PURE__*/_react["default"].createElement(BudgetsGroup, {
|
|
182
|
-
kind: "success",
|
|
183
|
-
source: source,
|
|
184
|
-
budgets: passedBudgets,
|
|
185
|
-
CustomLink: CustomLink
|
|
186
|
-
}));
|
|
187
|
-
};
|
|
188
|
-
|
|
189
151
|
exports.BudgetInsights = BudgetInsights;
|
|
190
152
|
BudgetInsights.propTypes = {
|
|
191
153
|
className: _propTypes["default"].string,
|
|
@@ -20,11 +20,15 @@
|
|
|
20
20
|
margin: 0 0 0 auto !important;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
.danger .groupIcon {
|
|
23
|
+
.group-danger .groupIcon {
|
|
24
24
|
color: var(--color-danger);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
.
|
|
27
|
+
.group-warning .groupIcon {
|
|
28
|
+
color: var(--color-warning);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.group-success .groupIcon {
|
|
28
32
|
color: var(--color-success);
|
|
29
33
|
}
|
|
30
34
|
|
|
@@ -39,6 +43,10 @@
|
|
|
39
43
|
text-decoration: none;
|
|
40
44
|
}
|
|
41
45
|
|
|
46
|
+
.budgetSuccess {
|
|
47
|
+
color: var(--color-text-light);
|
|
48
|
+
}
|
|
49
|
+
|
|
42
50
|
.budgetLabel,
|
|
43
51
|
.budgetValue {
|
|
44
52
|
color: var(--color-text-dark);
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports["default"] = exports.
|
|
6
|
+
exports["default"] = exports.WarnedBudgets = exports.FailedBudgets = exports.Default = void 0;
|
|
7
|
+
|
|
8
|
+
var _merge2 = _interopRequireDefault(require("lodash/merge"));
|
|
7
9
|
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
9
11
|
|
|
@@ -13,92 +15,151 @@ var _ = require(".");
|
|
|
13
15
|
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
17
|
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
exports["default"] = _default;
|
|
24
|
-
|
|
25
|
-
var Template = function Template(args) {
|
|
26
|
-
return /*#__PURE__*/_react["default"].createElement(_.BudgetInsights, args);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
var Default = Template.bind();
|
|
30
|
-
exports.Default = Default;
|
|
31
|
-
Default.args = {
|
|
32
|
-
source: 'webpack',
|
|
33
|
-
budgets: {
|
|
18
|
+
var BUDGETS = {
|
|
19
|
+
type: 'SUCCESS',
|
|
20
|
+
message: {
|
|
21
|
+
text: '8 budget checks passed',
|
|
22
|
+
md: '**8** budget checks passed'
|
|
23
|
+
},
|
|
24
|
+
data: {
|
|
34
25
|
totalSizeByTypeALL: {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
26
|
+
type: 'ERROR',
|
|
27
|
+
message: {
|
|
28
|
+
text: 'Bundle Size is above the budget',
|
|
29
|
+
md: 'Bundle Size is above the budget'
|
|
30
|
+
},
|
|
31
|
+
data: {
|
|
32
|
+
currentValue: 2097917,
|
|
33
|
+
budgetValue: 2097152,
|
|
34
|
+
failed: true
|
|
35
|
+
}
|
|
38
36
|
},
|
|
39
37
|
totalInitialSizeJS: {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
type: 'ERROR',
|
|
39
|
+
message: {
|
|
40
|
+
text: 'Initial JS is above the budget',
|
|
41
|
+
md: 'Initial JS is above the budget'
|
|
42
|
+
},
|
|
43
|
+
data: {
|
|
44
|
+
currentValue: 1265645,
|
|
45
|
+
budgetValue: 524288,
|
|
46
|
+
failed: true
|
|
47
|
+
}
|
|
43
48
|
},
|
|
44
49
|
totalInitialSizeCSS: {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
type: 'SUCCESS',
|
|
51
|
+
message: {
|
|
52
|
+
text: 'Initial CSS is below the budget',
|
|
53
|
+
md: 'Initial CSS is below the budget'
|
|
54
|
+
},
|
|
55
|
+
data: {
|
|
56
|
+
currentValue: 48866,
|
|
57
|
+
budgetValue: 51200,
|
|
58
|
+
failed: false
|
|
59
|
+
}
|
|
48
60
|
},
|
|
49
61
|
chunkCount: {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
62
|
+
type: 'SUCCESS',
|
|
63
|
+
message: {
|
|
64
|
+
text: 'Chunks is below the budget',
|
|
65
|
+
md: 'Chunks is below the budget'
|
|
66
|
+
},
|
|
67
|
+
data: {
|
|
68
|
+
currentValue: 12,
|
|
69
|
+
budgetValue: 50,
|
|
70
|
+
failed: false
|
|
71
|
+
}
|
|
53
72
|
},
|
|
54
73
|
moduleCount: {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
74
|
+
type: 'SUCCESS',
|
|
75
|
+
message: {
|
|
76
|
+
text: 'Modules is below the budget',
|
|
77
|
+
md: 'Modules is below the budget'
|
|
78
|
+
},
|
|
79
|
+
data: {
|
|
80
|
+
currentValue: 1059,
|
|
81
|
+
budgetValue: 2000,
|
|
82
|
+
failed: false
|
|
83
|
+
}
|
|
58
84
|
},
|
|
59
85
|
duplicatePackagesCount: {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
86
|
+
type: 'ERROR',
|
|
87
|
+
message: {
|
|
88
|
+
text: 'Duplicate packages is above the budget',
|
|
89
|
+
md: 'Duplicate packages is above the budget'
|
|
90
|
+
},
|
|
91
|
+
data: {
|
|
92
|
+
currentValue: 13,
|
|
93
|
+
budgetValue: 5,
|
|
94
|
+
failed: true
|
|
95
|
+
}
|
|
63
96
|
},
|
|
64
97
|
'sizes.totalSizeByTypeJS': {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
98
|
+
type: 'SUCCESS',
|
|
99
|
+
message: {
|
|
100
|
+
text: 'JS is below the budget',
|
|
101
|
+
md: 'JS is below the budget'
|
|
102
|
+
},
|
|
103
|
+
data: {
|
|
104
|
+
currentValue: 1981470,
|
|
105
|
+
budgetValue: 2097152,
|
|
106
|
+
failed: false
|
|
107
|
+
}
|
|
68
108
|
},
|
|
69
109
|
'sizes.totalSizeByTypeCSS': {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
110
|
+
type: 'SUCCESS',
|
|
111
|
+
message: {
|
|
112
|
+
text: 'CSS is below the budget',
|
|
113
|
+
md: 'CSS is below the budget'
|
|
114
|
+
},
|
|
115
|
+
data: {
|
|
116
|
+
currentValue: 56091,
|
|
117
|
+
budgetValue: 20480,
|
|
118
|
+
failed: true
|
|
119
|
+
}
|
|
73
120
|
}
|
|
74
121
|
}
|
|
75
122
|
};
|
|
123
|
+
var _default = {
|
|
124
|
+
title: 'Components/BudgetInsights',
|
|
125
|
+
component: _.BudgetInsights,
|
|
126
|
+
decorators: [function (Story) {
|
|
127
|
+
return /*#__PURE__*/_react["default"].createElement(_reactRouterDom.MemoryRouter, null, /*#__PURE__*/_react["default"].createElement(Story, null));
|
|
128
|
+
}]
|
|
129
|
+
};
|
|
130
|
+
exports["default"] = _default;
|
|
131
|
+
|
|
132
|
+
var Template = function Template(args) {
|
|
133
|
+
return /*#__PURE__*/_react["default"].createElement(_.BudgetInsights, args);
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
var Default = Template.bind();
|
|
137
|
+
exports.Default = Default;
|
|
138
|
+
Default.args = {
|
|
139
|
+
source: 'webpack',
|
|
140
|
+
budgets: BUDGETS
|
|
141
|
+
};
|
|
76
142
|
var FailedBudgets = Template.bind();
|
|
77
143
|
exports.FailedBudgets = FailedBudgets;
|
|
78
144
|
FailedBudgets.args = {
|
|
79
145
|
source: 'webpack',
|
|
80
|
-
budgets: {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
},
|
|
86
|
-
totalInitialSizeJS: {
|
|
87
|
-
currentValue: 1265645,
|
|
88
|
-
budgetValue: 524288,
|
|
89
|
-
failed: true
|
|
146
|
+
budgets: (0, _merge2["default"])({}, BUDGETS, {
|
|
147
|
+
type: 'ERROR',
|
|
148
|
+
message: {
|
|
149
|
+
text: '2/8 budget checks failed',
|
|
150
|
+
md: '**2/8** budget checks failed'
|
|
90
151
|
}
|
|
91
|
-
}
|
|
152
|
+
})
|
|
92
153
|
};
|
|
93
|
-
var
|
|
94
|
-
exports.
|
|
95
|
-
|
|
154
|
+
var WarnedBudgets = Template.bind();
|
|
155
|
+
exports.WarnedBudgets = WarnedBudgets;
|
|
156
|
+
WarnedBudgets.args = {
|
|
96
157
|
source: 'webpack',
|
|
97
|
-
budgets: {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
158
|
+
budgets: (0, _merge2["default"])({}, BUDGETS, {
|
|
159
|
+
type: 'WARNING',
|
|
160
|
+
message: {
|
|
161
|
+
text: '2/8 budget checks warned',
|
|
162
|
+
md: '**2/8** budget checks warned'
|
|
102
163
|
}
|
|
103
|
-
}
|
|
164
|
+
})
|
|
104
165
|
};
|
|
@@ -206,7 +206,8 @@ RowHeader.propTypes = {
|
|
|
206
206
|
isChunk: _propTypes["default"].bool,
|
|
207
207
|
isInitial: _propTypes["default"].bool,
|
|
208
208
|
isEntry: _propTypes["default"].bool,
|
|
209
|
-
runs: _propTypes["default"].arrayOf(_propTypes["default"].object)
|
|
209
|
+
runs: _propTypes["default"].arrayOf(_propTypes["default"].object) // eslint-disable-line react/forbid-prop-types
|
|
210
|
+
|
|
210
211
|
}).isRequired,
|
|
211
212
|
chunks: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
212
213
|
id: _propTypes["default"].string,
|
|
@@ -56,7 +56,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
56
56
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
57
57
|
|
|
58
58
|
var BundleAssetsTotalsTable = function BundleAssetsTotalsTable(_ref) {
|
|
59
|
-
var _jobs$0$insights, _jobs$0$insights$webp;
|
|
59
|
+
var _jobs$0$insights, _jobs$0$insights$webp, _jobs$0$insights$webp2;
|
|
60
60
|
|
|
61
61
|
var className = _ref.className,
|
|
62
62
|
jobs = _ref.jobs,
|
|
@@ -66,7 +66,7 @@ var BundleAssetsTotalsTable = function BundleAssetsTotalsTable(_ref) {
|
|
|
66
66
|
var items = (0, _react.useMemo)(function () {
|
|
67
67
|
return webpack.compareBySection.sizes(jobs);
|
|
68
68
|
}, [jobs]);
|
|
69
|
-
var budgets = (_jobs$0$insights = jobs[0].insights) === null || _jobs$0$insights === void 0 ? void 0 : (_jobs$0$insights$webp = _jobs$0$insights.webpack) === null || _jobs$0$insights$webp === void 0 ? void 0 : _jobs$0$insights$webp.budgets;
|
|
69
|
+
var budgets = (_jobs$0$insights = jobs[0].insights) === null || _jobs$0$insights === void 0 ? void 0 : (_jobs$0$insights$webp = _jobs$0$insights.webpack) === null || _jobs$0$insights$webp === void 0 ? void 0 : (_jobs$0$insights$webp2 = _jobs$0$insights$webp.budgets) === null || _jobs$0$insights$webp2 === void 0 ? void 0 : _jobs$0$insights$webp2.data;
|
|
70
70
|
var renderRowHeader = (0, _react.useCallback)(function (item) {
|
|
71
71
|
var fileType = _constants.ASSETS_SIZES_FILE_TYPE_MAP[item.key];
|
|
72
72
|
|
|
@@ -87,10 +87,9 @@ var BundleAssetsTotalsTable = function BundleAssetsTotalsTable(_ref) {
|
|
|
87
87
|
title: title,
|
|
88
88
|
params: params
|
|
89
89
|
}, /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
|
|
90
|
-
space: "
|
|
90
|
+
space: "xxxsmall",
|
|
91
91
|
className: _bundleAssetsTotalsTableModule["default"].itemTitleText
|
|
92
92
|
}, /*#__PURE__*/_react["default"].createElement("span", null, item.label), budget && /*#__PURE__*/_react["default"].createElement(_budgetInfo.BudgetInfo, {
|
|
93
|
-
metricId: item.key,
|
|
94
93
|
budgetInsight: budget
|
|
95
94
|
})));
|
|
96
95
|
}, [CustomComponentLink]);
|
|
@@ -184,7 +184,7 @@ var BundleModules = function BundleModules(_ref2) {
|
|
|
184
184
|
defaultValue: filters.changed,
|
|
185
185
|
disabled: jobs.length <= 1
|
|
186
186
|
}), _defineProperty(_objectSpread2, _utils.MODULE_FILTERS.DUPLICATED, {
|
|
187
|
-
label: '
|
|
187
|
+
label: 'Duplicate',
|
|
188
188
|
defaultValue: filters[_utils.MODULE_FILTERS.DUPLICATED],
|
|
189
189
|
disabled: jobs.length <= 1
|
|
190
190
|
}), _defineProperty(_objectSpread2, _utils.MODULE_SOURCE_TYPE, (_MODULE_SOURCE_TYPE = {
|