@bundle-stats/ui 4.0.0-rc.6 → 4.0.0-rc.7
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/components/bundle-assets/bundle-assets.js +64 -49
- package/lib/components/bundle-modules/bundle-modules.js +94 -79
- package/lib/components/bundle-packages/bundle-packages.js +60 -45
- package/lib/components/metrics-table-title/metrics-table-title.js +10 -7
- package/lib/components/metrics-table-title/metrics-table-title.module.css +9 -3
- package/lib/ui/filters/filters.js +5 -7
- package/lib/ui/filters/filters.utils.js +40 -2
- package/lib/ui/filters/index.js +96 -3
- package/lib-esm/components/bundle-assets/bundle-assets.js +63 -50
- package/lib-esm/components/bundle-modules/bundle-modules.js +78 -64
- package/lib-esm/components/bundle-packages/bundle-packages.js +44 -31
- package/lib-esm/components/metrics-table-title/metrics-table-title.js +10 -7
- package/lib-esm/components/metrics-table-title/metrics-table-title.module.css +9 -3
- package/lib-esm/ui/filters/filters.js +3 -4
- package/lib-esm/ui/filters/filters.utils.js +18 -0
- package/lib-esm/ui/filters/index.js +65 -3
- package/package.json +4 -4
- package/src/components/bundle-assets/bundle-assets.jsx +54 -45
- package/src/components/bundle-modules/bundle-modules.jsx +72 -65
- package/src/components/bundle-packages/bundle-packages.jsx +36 -26
- package/src/components/metrics-table-title/metrics-table-title.jsx +20 -18
- package/src/components/metrics-table-title/metrics-table-title.module.css +9 -3
- package/src/ui/filters/filters.jsx +4 -4
- package/src/ui/filters/filters.utils.js +21 -0
- package/src/ui/filters/index.jsx +72 -0
- package/lib/ui/filters/filters.container.js +0 -187
- package/lib-esm/ui/filters/filters.container.js +0 -111
- package/src/ui/filters/filters.container.jsx +0 -108
- package/src/ui/filters/index.js +0 -4
|
@@ -7,8 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.Filters = void 0;
|
|
9
9
|
|
|
10
|
-
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
11
|
-
|
|
12
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
11
|
|
|
14
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -26,12 +24,12 @@ var _filtersModule = _interopRequireDefault(require("./filters.module.css"));
|
|
|
26
24
|
var _excluded = ["className", "buttonClassName", "label", "name", "getOnOnlyClick"],
|
|
27
25
|
_excluded2 = ["label"];
|
|
28
26
|
|
|
27
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
28
|
+
|
|
29
29
|
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); }
|
|
30
30
|
|
|
31
31
|
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; }
|
|
32
32
|
|
|
33
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
34
|
-
|
|
35
33
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
36
34
|
|
|
37
35
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -120,11 +118,11 @@ var FilterGroup = function FilterGroup(props) {
|
|
|
120
118
|
|
|
121
119
|
return typeof (item === null || item === void 0 ? void 0 : item.defaultValue) !== 'undefined';
|
|
122
120
|
});
|
|
123
|
-
var
|
|
121
|
+
var areAllGroupItemsChecked = groupCheckboxes.map(function (_ref3) {
|
|
124
122
|
var _ref4 = _slicedToArray(_ref3, 1),
|
|
125
123
|
itemKey = _ref4[0];
|
|
126
124
|
|
|
127
|
-
return
|
|
125
|
+
return values === null || values === void 0 ? void 0 : values["".concat(groupKey, ".").concat(itemKey)];
|
|
128
126
|
}).reduce(function (agg, val) {
|
|
129
127
|
return agg && val;
|
|
130
128
|
}, true);
|
|
@@ -184,7 +182,7 @@ var FilterGroup = function FilterGroup(props) {
|
|
|
184
182
|
}));
|
|
185
183
|
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
186
184
|
className: _filtersModule["default"].filterGroupActions
|
|
187
|
-
},
|
|
185
|
+
}, areAllGroupItemsChecked ? /*#__PURE__*/_react["default"].createElement(MenuItem, {
|
|
188
186
|
id: "clear-all",
|
|
189
187
|
as: "button",
|
|
190
188
|
className: menuItemClassName,
|
|
@@ -3,7 +3,23 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getGroupFiltersLabelSuffix = exports.LABELS = void 0;
|
|
6
|
+
exports.getInitialValues = exports.getGroupFiltersLabelSuffix = exports.LABELS = void 0;
|
|
7
|
+
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
|
|
10
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
+
|
|
12
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
13
|
+
|
|
14
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
+
|
|
16
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
17
|
+
|
|
18
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
19
|
+
|
|
20
|
+
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); }
|
|
21
|
+
|
|
22
|
+
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; }
|
|
7
23
|
|
|
8
24
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
9
25
|
|
|
@@ -90,4 +106,26 @@ var getGroupFiltersLabelSuffix = function getGroupFiltersLabelSuffix(filters) {
|
|
|
90
106
|
return "".concat(suffix).concat(skippedLabels > 0 ? " +".concat(skippedLabels) : '');
|
|
91
107
|
};
|
|
92
108
|
|
|
93
|
-
exports.getGroupFiltersLabelSuffix = getGroupFiltersLabelSuffix;
|
|
109
|
+
exports.getGroupFiltersLabelSuffix = getGroupFiltersLabelSuffix;
|
|
110
|
+
|
|
111
|
+
var getInitialValues = function getInitialValues(key, filters) {
|
|
112
|
+
if (typeof (filters === null || filters === void 0 ? void 0 : filters.defaultValue) !== 'undefined') {
|
|
113
|
+
return _defineProperty({}, key, filters.defaultValue);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (_typeof(filters) === 'object') {
|
|
117
|
+
return Object.entries(filters).map(function (_ref6) {
|
|
118
|
+
var _ref7 = _slicedToArray(_ref6, 2),
|
|
119
|
+
groupKey = _ref7[0],
|
|
120
|
+
groupFilters = _ref7[1];
|
|
121
|
+
|
|
122
|
+
return getInitialValues([].concat(_toConsumableArray(key ? [key] : []), [groupKey]).join('.'), groupFilters);
|
|
123
|
+
}).reduce(function (agg, current) {
|
|
124
|
+
return _objectSpread(_objectSpread({}, agg), current);
|
|
125
|
+
}, {});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return {};
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
exports.getInitialValues = getInitialValues;
|
package/lib/ui/filters/index.js
CHANGED
|
@@ -1,13 +1,106 @@
|
|
|
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
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.Filters = void 0;
|
|
7
9
|
|
|
8
|
-
var
|
|
10
|
+
var _merge3 = _interopRequireDefault(require("lodash/merge"));
|
|
11
|
+
|
|
12
|
+
var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
+
|
|
18
|
+
var _filters = require("./filters.utils");
|
|
9
19
|
|
|
10
20
|
var _filters2 = require("./filters");
|
|
11
21
|
|
|
12
|
-
var
|
|
13
|
-
|
|
22
|
+
var _excluded = ["onChange", "filters"];
|
|
23
|
+
|
|
24
|
+
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); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
29
|
+
|
|
30
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
35
|
+
|
|
36
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
37
|
+
|
|
38
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
39
|
+
|
|
40
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
41
|
+
|
|
42
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
43
|
+
|
|
44
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
45
|
+
|
|
46
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
47
|
+
|
|
48
|
+
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; }
|
|
49
|
+
|
|
50
|
+
var Filters = function Filters(props) {
|
|
51
|
+
var onChange = props.onChange,
|
|
52
|
+
filters = props.filters,
|
|
53
|
+
restProps = _objectWithoutProperties(props, _excluded);
|
|
54
|
+
|
|
55
|
+
var _useState = (0, _react.useState)((0, _filters.getInitialValues)('', filters)),
|
|
56
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
57
|
+
values = _useState2[0],
|
|
58
|
+
setValues = _useState2[1]; // Update values when the parent filters are changing (route with query string change)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
(0, _react.useEffect)(function () {
|
|
62
|
+
var parentValues = (0, _filters.getInitialValues)('', filters);
|
|
63
|
+
|
|
64
|
+
if ((0, _isEqual2["default"])(parentValues, values)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
setValues(parentValues);
|
|
69
|
+
}, // Do not trigger effect when the values are changing locally
|
|
70
|
+
[filters, setValues]);
|
|
71
|
+
var toggleFilter = (0, _react.useCallback)(function (key, value) {
|
|
72
|
+
var nextValues = (0, _merge3["default"])({}, values, _defineProperty({}, key, value));
|
|
73
|
+
setValues(nextValues);
|
|
74
|
+
|
|
75
|
+
if (onChange) {
|
|
76
|
+
onChange(nextValues);
|
|
77
|
+
}
|
|
78
|
+
}, [onChange, setValues, values]);
|
|
79
|
+
var toggleFilters = (0, _react.useCallback)(function (newFilters) {
|
|
80
|
+
var nextValues = (0, _merge3["default"])({}, values, newFilters);
|
|
81
|
+
setValues(nextValues);
|
|
82
|
+
|
|
83
|
+
if (onChange) {
|
|
84
|
+
onChange(nextValues);
|
|
85
|
+
}
|
|
86
|
+
}, [onChange, setValues, values]);
|
|
87
|
+
return /*#__PURE__*/_react["default"].createElement(_filters2.Filters, _extends({}, restProps, {
|
|
88
|
+
filters: filters,
|
|
89
|
+
values: values,
|
|
90
|
+
toggleFilter: toggleFilter,
|
|
91
|
+
toggleFilters: toggleFilters
|
|
92
|
+
}));
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
exports.Filters = Filters;
|
|
96
|
+
Filters.defaultProps = {
|
|
97
|
+
onChange: null
|
|
98
|
+
};
|
|
99
|
+
Filters.propTypes = {
|
|
100
|
+
/** Filter config */
|
|
101
|
+
filters: _propTypes["default"].object.isRequired,
|
|
102
|
+
// eslint-disable-line react/forbid-prop-types
|
|
103
|
+
|
|
104
|
+
/** OnChange handler */
|
|
105
|
+
onChange: _propTypes["default"].func
|
|
106
|
+
};
|
|
@@ -42,21 +42,58 @@ const getFileTypeFilters = filters => Object.entries(FILE_TYPE_LABELS).map(_ref
|
|
|
42
42
|
...current
|
|
43
43
|
}), {});
|
|
44
44
|
|
|
45
|
-
const
|
|
45
|
+
const getFilters = _ref2 => {
|
|
46
46
|
let {
|
|
47
|
-
|
|
47
|
+
compareMode,
|
|
48
|
+
filters
|
|
48
49
|
} = _ref2;
|
|
50
|
+
return {
|
|
51
|
+
[ASSET_FILTERS.CHANGED]: {
|
|
52
|
+
label: 'Changed',
|
|
53
|
+
defaultValue: filters[ASSET_FILTERS.CHANGED],
|
|
54
|
+
disabled: !compareMode
|
|
55
|
+
},
|
|
56
|
+
[ASSET_ENTRY_TYPE]: {
|
|
57
|
+
label: 'Entry type',
|
|
58
|
+
[ASSET_FILTERS.ENTRY]: {
|
|
59
|
+
label: 'Entry',
|
|
60
|
+
defaultValue: _get(filters, `${ASSET_ENTRY_TYPE}.${ASSET_FILTERS.ENTRY}`, true)
|
|
61
|
+
},
|
|
62
|
+
[ASSET_FILTERS.INITIAL]: {
|
|
63
|
+
label: 'Initial',
|
|
64
|
+
defaultValue: _get(filters, `${ASSET_ENTRY_TYPE}.${ASSET_FILTERS.INITIAL}`, true)
|
|
65
|
+
},
|
|
66
|
+
[ASSET_FILTERS.CHUNK]: {
|
|
67
|
+
label: 'Chunk',
|
|
68
|
+
defaultValue: _get(filters, `${ASSET_ENTRY_TYPE}.${ASSET_FILTERS.CHUNK}`, true)
|
|
69
|
+
},
|
|
70
|
+
[ASSET_FILTERS.ASSET]: {
|
|
71
|
+
label: 'Asset',
|
|
72
|
+
defaultValue: _get(filters, `${ASSET_ENTRY_TYPE}.${ASSET_FILTERS.ASSET}`, true)
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
[ASSET_FILE_TYPE]: {
|
|
76
|
+
label: 'File type',
|
|
77
|
+
...getFileTypeFilters(filters)
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const TooltipNotPredictive = _ref3 => {
|
|
83
|
+
let {
|
|
84
|
+
runs
|
|
85
|
+
} = _ref3;
|
|
49
86
|
return /*#__PURE__*/React.createElement("div", {
|
|
50
87
|
className: css.tooltipNotPredictive
|
|
51
88
|
}, /*#__PURE__*/React.createElement("p", {
|
|
52
89
|
className: css.tooltipNotPredictiveText
|
|
53
90
|
}, "File name is the same, but the size has changed:"), /*#__PURE__*/React.createElement("table", {
|
|
54
91
|
className: css.tooltipTable
|
|
55
|
-
}, /*#__PURE__*/React.createElement("tr", null, runs.map((
|
|
92
|
+
}, /*#__PURE__*/React.createElement("tr", null, runs.map((_ref4, index) => {
|
|
56
93
|
let {
|
|
57
94
|
name,
|
|
58
95
|
value
|
|
59
|
-
} =
|
|
96
|
+
} = _ref4;
|
|
60
97
|
const key = index;
|
|
61
98
|
return /*#__PURE__*/React.createElement("tr", {
|
|
62
99
|
key: key
|
|
@@ -72,13 +109,13 @@ TooltipNotPredictive.propTypes = {
|
|
|
72
109
|
|
|
73
110
|
};
|
|
74
111
|
|
|
75
|
-
const RowHeader =
|
|
112
|
+
const RowHeader = _ref5 => {
|
|
76
113
|
let {
|
|
77
114
|
row,
|
|
78
115
|
labels,
|
|
79
116
|
chunks,
|
|
80
117
|
CustomComponentLink
|
|
81
|
-
} =
|
|
118
|
+
} = _ref5;
|
|
82
119
|
const {
|
|
83
120
|
label,
|
|
84
121
|
isNotPredictive,
|
|
@@ -176,12 +213,16 @@ export const BundleAssets = props => {
|
|
|
176
213
|
updateSearch,
|
|
177
214
|
customComponentLink: CustomComponentLink
|
|
178
215
|
} = props;
|
|
179
|
-
const
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
216
|
+
const dropdownFilters = useMemo(() => getFilters({
|
|
217
|
+
compareMode: (jobs == null ? void 0 : jobs.length) > 1,
|
|
218
|
+
filters
|
|
219
|
+
}), [jobs, filters]);
|
|
220
|
+
const metricsTableTitle = useMemo(() => /*#__PURE__*/React.createElement(MetricsTableTitle, {
|
|
221
|
+
title: I18N.ASSETS,
|
|
222
|
+
info: `${items.length}/${totalRowCount}`,
|
|
223
|
+
popoverInfo: I18N.ASSETS_INFO,
|
|
224
|
+
popoverHref: config.documentation.assets
|
|
225
|
+
}), [items, totalRowCount]);
|
|
185
226
|
const renderRowHeader = useCallback(row => {
|
|
186
227
|
var _jobs$, _jobs$$meta, _jobs$$meta$webpack;
|
|
187
228
|
|
|
@@ -192,14 +233,20 @@ export const BundleAssets = props => {
|
|
|
192
233
|
CustomComponentLink: CustomComponentLink
|
|
193
234
|
});
|
|
194
235
|
}, [jobs, CustomComponentLink]);
|
|
236
|
+
const emptyMessage = useMemo(() => /*#__PURE__*/React.createElement(EmptySet, {
|
|
237
|
+
resources: "assets",
|
|
238
|
+
filtered: totalRowCount !== 0,
|
|
239
|
+
handleResetFilters: resetFilters,
|
|
240
|
+
handleViewAll: resetAllFilters
|
|
241
|
+
}), [totalRowCount, resetFilters, resetAllFilters]);
|
|
195
242
|
return /*#__PURE__*/React.createElement("section", {
|
|
196
243
|
className: cx(css.root, className)
|
|
197
244
|
}, /*#__PURE__*/React.createElement(Toolbar, {
|
|
198
245
|
className: css.toolbar,
|
|
199
|
-
renderActions:
|
|
246
|
+
renderActions: _ref6 => {
|
|
200
247
|
let {
|
|
201
248
|
actionClassName
|
|
202
|
-
} =
|
|
249
|
+
} = _ref6;
|
|
203
250
|
return /*#__PURE__*/React.createElement(FlexStack, {
|
|
204
251
|
space: "xxsmall",
|
|
205
252
|
className: cx(css.dropdown, actionClassName)
|
|
@@ -221,36 +268,7 @@ export const BundleAssets = props => {
|
|
|
221
268
|
updateSearch: updateSearch
|
|
222
269
|
}), /*#__PURE__*/React.createElement(Filters, {
|
|
223
270
|
className: css.toolbarFilters,
|
|
224
|
-
filters:
|
|
225
|
-
[ASSET_FILTERS.CHANGED]: {
|
|
226
|
-
label: 'Changed',
|
|
227
|
-
defaultValue: filters[ASSET_FILTERS.CHANGED],
|
|
228
|
-
disabled: jobs.length <= 1
|
|
229
|
-
},
|
|
230
|
-
[ASSET_ENTRY_TYPE]: {
|
|
231
|
-
label: 'Entry type',
|
|
232
|
-
[ASSET_FILTERS.ENTRY]: {
|
|
233
|
-
label: 'Entry',
|
|
234
|
-
defaultValue: _get(filters, `${ASSET_ENTRY_TYPE}.${ASSET_FILTERS.ENTRY}`, true)
|
|
235
|
-
},
|
|
236
|
-
[ASSET_FILTERS.INITIAL]: {
|
|
237
|
-
label: 'Initial',
|
|
238
|
-
defaultValue: _get(filters, `${ASSET_ENTRY_TYPE}.${ASSET_FILTERS.INITIAL}`, true)
|
|
239
|
-
},
|
|
240
|
-
[ASSET_FILTERS.CHUNK]: {
|
|
241
|
-
label: 'Chunk',
|
|
242
|
-
defaultValue: _get(filters, `${ASSET_ENTRY_TYPE}.${ASSET_FILTERS.CHUNK}`, true)
|
|
243
|
-
},
|
|
244
|
-
[ASSET_FILTERS.ASSET]: {
|
|
245
|
-
label: 'Asset',
|
|
246
|
-
defaultValue: _get(filters, `${ASSET_ENTRY_TYPE}.${ASSET_FILTERS.ASSET}`, true)
|
|
247
|
-
}
|
|
248
|
-
},
|
|
249
|
-
[ASSET_FILE_TYPE]: {
|
|
250
|
-
label: 'File type',
|
|
251
|
-
...getFileTypeFilters(filters)
|
|
252
|
-
}
|
|
253
|
-
},
|
|
271
|
+
filters: dropdownFilters,
|
|
254
272
|
hasActiveFilters: hasActiveFilters,
|
|
255
273
|
onChange: updateFilters
|
|
256
274
|
}))), /*#__PURE__*/React.createElement("main", null, /*#__PURE__*/React.createElement(MetricsTable, {
|
|
@@ -259,12 +277,7 @@ export const BundleAssets = props => {
|
|
|
259
277
|
renderRowHeader: renderRowHeader,
|
|
260
278
|
emptyMessage: emptyMessage,
|
|
261
279
|
showHeaderSum: true,
|
|
262
|
-
title:
|
|
263
|
-
title: I18N.ASSETS,
|
|
264
|
-
info: `(${items.length}/${totalRowCount})`,
|
|
265
|
-
popoverInfo: I18N.ASSETS_INFO,
|
|
266
|
-
popoverHref: config.documentation.assets
|
|
267
|
-
})
|
|
280
|
+
title: metricsTableTitle
|
|
268
281
|
})));
|
|
269
282
|
};
|
|
270
283
|
BundleAssets.defaultProps = {
|
|
@@ -26,13 +26,71 @@ import { MetricsTableTitle } from '../metrics-table-title';
|
|
|
26
26
|
import { ModuleInfo } from '../module-info';
|
|
27
27
|
import css from './bundle-modules.module.css';
|
|
28
28
|
|
|
29
|
-
const
|
|
29
|
+
const getFilters = _ref => {
|
|
30
|
+
let {
|
|
31
|
+
filters,
|
|
32
|
+
compareMode,
|
|
33
|
+
chunks
|
|
34
|
+
} = _ref;
|
|
35
|
+
return {
|
|
36
|
+
[MODULE_FILTERS.CHANGED]: {
|
|
37
|
+
label: 'Changed',
|
|
38
|
+
defaultValue: filters.changed,
|
|
39
|
+
disabled: !compareMode
|
|
40
|
+
},
|
|
41
|
+
[MODULE_FILTERS.DUPLICATED]: {
|
|
42
|
+
label: 'Duplicate',
|
|
43
|
+
defaultValue: filters[MODULE_FILTERS.DUPLICATED]
|
|
44
|
+
},
|
|
45
|
+
[MODULE_SOURCE_TYPE]: {
|
|
46
|
+
label: 'Source',
|
|
47
|
+
[MODULE_FILTERS.FIRST_PARTY]: {
|
|
48
|
+
label: 'First party',
|
|
49
|
+
defaultValue: _get(filters, `${MODULE_SOURCE_TYPE}.${MODULE_FILTERS.FIRST_PARTY}`, true)
|
|
50
|
+
},
|
|
51
|
+
[MODULE_FILTERS.THIRD_PARTY]: {
|
|
52
|
+
label: 'Third party',
|
|
53
|
+
defaultValue: _get(filters, `${MODULE_SOURCE_TYPE}.${MODULE_FILTERS.THIRD_PARTY}`, true)
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
// When chunks data available, list available chunks as filters
|
|
57
|
+
...(!_isEmpty(chunks) && {
|
|
58
|
+
[MODULE_CHUNK]: {
|
|
59
|
+
label: 'Chunk',
|
|
60
|
+
...chunks.reduce((chunkFilters, _ref2) => {
|
|
61
|
+
let {
|
|
62
|
+
id,
|
|
63
|
+
name
|
|
64
|
+
} = _ref2;
|
|
65
|
+
return { ...chunkFilters,
|
|
66
|
+
[id]: {
|
|
67
|
+
label: name,
|
|
68
|
+
defaultValue: _get(filters, `${MODULE_CHUNK}.${id}`, true)
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}, {})
|
|
72
|
+
}
|
|
73
|
+
}),
|
|
74
|
+
// Module source types
|
|
75
|
+
[MODULE_FILE_TYPE]: {
|
|
76
|
+
label: 'File type',
|
|
77
|
+
...MODULE_SOURCE_FILE_TYPES.reduce((agg, fileType) => ({ ...agg,
|
|
78
|
+
[fileType]: {
|
|
79
|
+
label: FILE_TYPE_LABELS[fileType],
|
|
80
|
+
defaultValue: _get(filters, `${MODULE_FILE_TYPE}.${fileType}`, true)
|
|
81
|
+
}
|
|
82
|
+
}), {})
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const RowHeader = _ref3 => {
|
|
30
88
|
let {
|
|
31
89
|
row,
|
|
32
90
|
chunks,
|
|
33
91
|
labels,
|
|
34
92
|
CustomComponentLink
|
|
35
|
-
} =
|
|
93
|
+
} = _ref3;
|
|
36
94
|
|
|
37
95
|
const chunkIds = _map(chunks, 'id');
|
|
38
96
|
|
|
@@ -82,7 +140,7 @@ RowHeader.propTypes = {
|
|
|
82
140
|
RowHeader.defaultProps = {
|
|
83
141
|
chunks: []
|
|
84
142
|
};
|
|
85
|
-
export const BundleModules =
|
|
143
|
+
export const BundleModules = _ref4 => {
|
|
86
144
|
let {
|
|
87
145
|
className,
|
|
88
146
|
jobs,
|
|
@@ -100,78 +158,39 @@ export const BundleModules = _ref2 => {
|
|
|
100
158
|
updateSearch,
|
|
101
159
|
hasActiveFilters,
|
|
102
160
|
customComponentLink: CustomComponentLink
|
|
103
|
-
} =
|
|
161
|
+
} = _ref4;
|
|
104
162
|
const rootClassName = cx(css.root, className);
|
|
163
|
+
const dropdownFilters = useMemo(() => getFilters({
|
|
164
|
+
filters,
|
|
165
|
+
chunks,
|
|
166
|
+
compareMode: jobs.length > 1
|
|
167
|
+
}), [jobs, filters, chunks]);
|
|
168
|
+
const metricsTableTitle = useMemo(() => /*#__PURE__*/React.createElement(MetricsTableTitle, {
|
|
169
|
+
title: I18N.MODULES,
|
|
170
|
+
info: `${items.length}/${totalRowCount}`,
|
|
171
|
+
popoverInfo: I18N.MODULES_INFO,
|
|
172
|
+
popoverHref: config.documentation.modules
|
|
173
|
+
}), [items, totalRowCount]);
|
|
105
174
|
const renderRowHeader = useCallback(row => /*#__PURE__*/React.createElement(RowHeader, {
|
|
106
175
|
row: row,
|
|
107
176
|
chunks: chunks,
|
|
108
177
|
labels: _map(jobs, 'label'),
|
|
109
178
|
CustomComponentLink: CustomComponentLink
|
|
110
179
|
}), [jobs, chunks, CustomComponentLink]);
|
|
111
|
-
const emptyMessage = /*#__PURE__*/React.createElement(EmptySet, {
|
|
180
|
+
const emptyMessage = useMemo(() => /*#__PURE__*/React.createElement(EmptySet, {
|
|
112
181
|
resources: "modules",
|
|
113
182
|
filtered: totalRowCount !== 0,
|
|
114
183
|
handleResetFilters: resetFilters,
|
|
115
184
|
handleViewAll: resetAllFilters
|
|
116
|
-
});
|
|
117
|
-
const dropdownFilters = {
|
|
118
|
-
[MODULE_FILTERS.CHANGED]: {
|
|
119
|
-
label: 'Changed',
|
|
120
|
-
defaultValue: filters.changed,
|
|
121
|
-
disabled: jobs.length <= 1
|
|
122
|
-
},
|
|
123
|
-
[MODULE_FILTERS.DUPLICATED]: {
|
|
124
|
-
label: 'Duplicate',
|
|
125
|
-
defaultValue: filters[MODULE_FILTERS.DUPLICATED]
|
|
126
|
-
},
|
|
127
|
-
[MODULE_SOURCE_TYPE]: {
|
|
128
|
-
label: 'Source',
|
|
129
|
-
[MODULE_FILTERS.FIRST_PARTY]: {
|
|
130
|
-
label: 'First party',
|
|
131
|
-
defaultValue: _get(filters, `${MODULE_SOURCE_TYPE}.${MODULE_FILTERS.FIRST_PARTY}`, true)
|
|
132
|
-
},
|
|
133
|
-
[MODULE_FILTERS.THIRD_PARTY]: {
|
|
134
|
-
label: 'Third party',
|
|
135
|
-
defaultValue: _get(filters, `${MODULE_SOURCE_TYPE}.${MODULE_FILTERS.THIRD_PARTY}`, true)
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
// When chunks data available, list available chunks as filters
|
|
139
|
-
...(!_isEmpty(chunks) && {
|
|
140
|
-
[MODULE_CHUNK]: {
|
|
141
|
-
label: 'Chunk',
|
|
142
|
-
...chunks.reduce((chunkFilters, _ref3) => {
|
|
143
|
-
let {
|
|
144
|
-
id,
|
|
145
|
-
name
|
|
146
|
-
} = _ref3;
|
|
147
|
-
return { ...chunkFilters,
|
|
148
|
-
[id]: {
|
|
149
|
-
label: name,
|
|
150
|
-
defaultValue: _get(filters, `${MODULE_CHUNK}.${id}`, true)
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
}, {})
|
|
154
|
-
}
|
|
155
|
-
}),
|
|
156
|
-
// Module source types
|
|
157
|
-
[MODULE_FILE_TYPE]: {
|
|
158
|
-
label: 'File type',
|
|
159
|
-
...MODULE_SOURCE_FILE_TYPES.reduce((agg, fileType) => ({ ...agg,
|
|
160
|
-
[fileType]: {
|
|
161
|
-
label: FILE_TYPE_LABELS[fileType],
|
|
162
|
-
defaultValue: _get(filters, `${MODULE_FILE_TYPE}.${fileType}`, true)
|
|
163
|
-
}
|
|
164
|
-
}), {})
|
|
165
|
-
}
|
|
166
|
-
};
|
|
185
|
+
}), [totalRowCount, resetFilters, resetAllFilters]);
|
|
167
186
|
return /*#__PURE__*/React.createElement("div", {
|
|
168
187
|
className: rootClassName
|
|
169
188
|
}, /*#__PURE__*/React.createElement(Toolbar, {
|
|
170
189
|
className: css.toolbar,
|
|
171
|
-
renderActions:
|
|
190
|
+
renderActions: _ref5 => {
|
|
172
191
|
let {
|
|
173
192
|
actionClassName
|
|
174
|
-
} =
|
|
193
|
+
} = _ref5;
|
|
175
194
|
return /*#__PURE__*/React.createElement(FlexStack, {
|
|
176
195
|
space: "xxsmall",
|
|
177
196
|
className: cx(css.dropdown, actionClassName)
|
|
@@ -203,12 +222,7 @@ export const BundleModules = _ref2 => {
|
|
|
203
222
|
renderRowHeader: renderRowHeader,
|
|
204
223
|
emptyMessage: emptyMessage,
|
|
205
224
|
showHeaderSum: true,
|
|
206
|
-
title:
|
|
207
|
-
title: I18N.MODULES,
|
|
208
|
-
info: `(${items.length}/${totalRowCount})`,
|
|
209
|
-
popoverInfo: I18N.MODULES_INFO,
|
|
210
|
-
popoverHref: config.documentation.modules
|
|
211
|
-
})
|
|
225
|
+
title: metricsTableTitle
|
|
212
226
|
}));
|
|
213
227
|
};
|
|
214
228
|
BundleModules.defaultProps = {
|