@bundle-stats/ui 3.2.4-alpha.0 → 3.2.4
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/CHANGELOG.md +2 -1
- package/lib/components/bundle-assets/bundle-assets.js +7 -9
- package/lib/components/bundle-assets/bundle-assets.module.css +0 -5
- package/lib/components/bundle-modules/bundle-modules.js +63 -34
- package/lib/components/bundle-modules/bundle-modules.module.css +4 -0
- package/lib/components/bundle-packages/bundle-packages.js +24 -29
- package/lib/components/bundle-packages/bundle-packages.module.css +20 -37
- package/lib/components/metrics-table-title/metrics-table-title.js +3 -7
- package/lib/components/summary-item/summary-item.js +18 -16
- package/lib/components/total-size-type-title/total-size-type-title.js +3 -7
- package/lib/ui/dropdown/dropdown.js +19 -15
- package/lib/ui/filters/filters.js +5 -3
- package/lib/ui/index.js +8 -8
- package/lib/ui/{hover-card → popover}/index.js +4 -4
- package/lib/ui/popover/popover.js +92 -0
- package/lib/ui/popover/popover.module.css +66 -0
- package/lib/ui/popover/popover.stories.js +26 -0
- package/lib/ui/sort-dropdown/sort-dropdown.js +5 -2
- package/lib/ui/tooltip/tooltip.js +14 -22
- package/lib/ui/tooltip/tooltip.module.css +3 -5
- package/lib-esm/components/bundle-assets/bundle-assets.js +7 -9
- package/lib-esm/components/bundle-assets/bundle-assets.module.css +0 -5
- package/lib-esm/components/bundle-modules/bundle-modules.js +29 -17
- package/lib-esm/components/bundle-modules/bundle-modules.module.css +4 -0
- package/lib-esm/components/bundle-packages/bundle-packages.js +23 -28
- package/lib-esm/components/bundle-packages/bundle-packages.module.css +20 -37
- package/lib-esm/components/metrics-table-title/metrics-table-title.js +3 -6
- package/lib-esm/components/summary-item/summary-item.js +18 -15
- package/lib-esm/components/total-size-type-title/total-size-type-title.js +3 -6
- package/lib-esm/ui/dropdown/dropdown.js +19 -9
- package/lib-esm/ui/filters/filters.js +5 -3
- package/lib-esm/ui/index.js +1 -1
- package/lib-esm/ui/popover/index.js +1 -0
- package/lib-esm/ui/popover/popover.js +71 -0
- package/lib-esm/ui/popover/popover.module.css +66 -0
- package/lib-esm/ui/popover/popover.stories.js +14 -0
- package/lib-esm/ui/sort-dropdown/sort-dropdown.js +5 -2
- package/lib-esm/ui/tooltip/tooltip.js +14 -15
- package/lib-esm/ui/tooltip/tooltip.module.css +3 -5
- package/package.json +4 -7
- package/src/components/bundle-assets/bundle-assets.jsx +42 -51
- package/src/components/bundle-assets/bundle-assets.module.css +0 -5
- package/src/components/bundle-modules/bundle-modules.jsx +31 -28
- package/src/components/bundle-modules/bundle-modules.module.css +4 -0
- package/src/components/bundle-packages/bundle-packages.jsx +25 -31
- package/src/components/bundle-packages/bundle-packages.module.css +20 -37
- package/src/components/metrics-table-options/metrics-table-options.jsx +1 -1
- package/src/components/metrics-table-title/metrics-table-title.jsx +3 -4
- package/src/components/summary-item/summary-item.jsx +26 -21
- package/src/components/total-size-type-title/total-size-type-title.jsx +9 -6
- package/src/ui/dropdown/dropdown.jsx +18 -14
- package/src/ui/filters/filters.jsx +39 -30
- package/src/ui/index.js +1 -1
- package/src/ui/popover/index.js +1 -0
- package/src/ui/popover/popover.jsx +79 -0
- package/src/ui/popover/popover.module.css +66 -0
- package/src/ui/sort-dropdown/sort-dropdown.jsx +11 -9
- package/src/ui/tooltip/tooltip.jsx +27 -20
- package/src/ui/tooltip/tooltip.module.css +3 -5
- package/lib/ui/hover-card/hover-card.js +0 -65
- package/lib/ui/hover-card/hover-card.module.css +0 -29
- package/lib/ui/hover-card/hover-card.stories.js +0 -26
- package/lib-esm/ui/hover-card/hover-card.js +0 -45
- package/lib-esm/ui/hover-card/hover-card.module.css +0 -29
- package/lib-esm/ui/hover-card/hover-card.stories.js +0 -9
- package/lib-esm/ui/hover-card/index.js +0 -1
- package/src/ui/hover-card/hover-card.jsx +0 -42
- package/src/ui/hover-card/hover-card.module.css +0 -29
- package/src/ui/hover-card/index.js +0 -1
package/lib/ui/index.js
CHANGED
|
@@ -45,12 +45,6 @@ Object.defineProperty(exports, "HorizontalBarChart", {
|
|
|
45
45
|
return _horizontalBarChart.HorizontalBarChart;
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
|
-
Object.defineProperty(exports, "HoverCard", {
|
|
49
|
-
enumerable: true,
|
|
50
|
-
get: function get() {
|
|
51
|
-
return _hoverCard.HoverCard;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
48
|
Object.defineProperty(exports, "Icon", {
|
|
55
49
|
enumerable: true,
|
|
56
50
|
get: function get() {
|
|
@@ -81,6 +75,12 @@ Object.defineProperty(exports, "Panels", {
|
|
|
81
75
|
return _panels.Panels;
|
|
82
76
|
}
|
|
83
77
|
});
|
|
78
|
+
Object.defineProperty(exports, "Popover", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function get() {
|
|
81
|
+
return _popover.Popover;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
84
|
Object.defineProperty(exports, "Skeleton", {
|
|
85
85
|
enumerable: true,
|
|
86
86
|
get: function get() {
|
|
@@ -130,14 +130,14 @@ var _icon = require("./icon");
|
|
|
130
130
|
|
|
131
131
|
var _input = require("./input");
|
|
132
132
|
|
|
133
|
-
var _hoverCard = require("./hover-card");
|
|
134
|
-
|
|
135
133
|
var _loader = require("./loader");
|
|
136
134
|
|
|
137
135
|
var _logo = require("./logo");
|
|
138
136
|
|
|
139
137
|
var _panels = require("./panels");
|
|
140
138
|
|
|
139
|
+
var _popover = require("./popover");
|
|
140
|
+
|
|
141
141
|
var _skeleton = require("./skeleton");
|
|
142
142
|
|
|
143
143
|
var _sortDropdown = require("./sort-dropdown");
|
|
@@ -4,15 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _popover = require("./popover");
|
|
8
8
|
|
|
9
|
-
Object.keys(
|
|
9
|
+
Object.keys(_popover).forEach(function (key) {
|
|
10
10
|
if (key === "default" || key === "__esModule") return;
|
|
11
|
-
if (key in exports && exports[key] ===
|
|
11
|
+
if (key in exports && exports[key] === _popover[key]) return;
|
|
12
12
|
Object.defineProperty(exports, key, {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function get() {
|
|
15
|
-
return
|
|
15
|
+
return _popover[key];
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
});
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
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
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Popover = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
+
|
|
16
|
+
var _Popover = require("reakit/Popover");
|
|
17
|
+
|
|
18
|
+
var _icon = require("../icon");
|
|
19
|
+
|
|
20
|
+
var _popoverModule = _interopRequireDefault(require("./popover.module.css"));
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
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 _extends() { _extends = Object.assign || 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); }
|
|
29
|
+
|
|
30
|
+
var Popover = function Popover(_ref) {
|
|
31
|
+
var className = _ref.className,
|
|
32
|
+
icon = _ref.icon,
|
|
33
|
+
label = _ref.label,
|
|
34
|
+
ariaLabel = _ref.ariaLabel,
|
|
35
|
+
children = _ref.children;
|
|
36
|
+
var popover = (0, _Popover.usePopoverState)({
|
|
37
|
+
baseId: process.env.NODE_ENV === 'test' && 'id-test',
|
|
38
|
+
gutter: 12,
|
|
39
|
+
modal: true,
|
|
40
|
+
placement: 'top'
|
|
41
|
+
});
|
|
42
|
+
var onCloseButtonClick = (0, _react.useCallback)(function (event) {
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
popover.toggle();
|
|
45
|
+
}, [popover]);
|
|
46
|
+
var onButtonClick = (0, _react.useCallback)(function (event) {
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
popover.toggle();
|
|
49
|
+
}, [popover]);
|
|
50
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Popover.PopoverDisclosure, _extends({
|
|
51
|
+
className: (0, _classnames["default"])(_popoverModule["default"].button, className)
|
|
52
|
+
}, popover, {
|
|
53
|
+
onClick: onButtonClick,
|
|
54
|
+
"aria-label": ariaLabel
|
|
55
|
+
}), icon && (typeof icon === 'string' ? /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
|
|
56
|
+
className: _popoverModule["default"].icon,
|
|
57
|
+
glyph: icon
|
|
58
|
+
}) : icon), label && /*#__PURE__*/_react["default"].createElement("span", {
|
|
59
|
+
className: _popoverModule["default"].label
|
|
60
|
+
}, label)), /*#__PURE__*/_react["default"].createElement(_Popover.Popover, _extends({
|
|
61
|
+
className: _popoverModule["default"].popover
|
|
62
|
+
}, popover, {
|
|
63
|
+
tabIndex: 0
|
|
64
|
+
}), /*#__PURE__*/_react["default"].createElement(_Popover.PopoverArrow, _extends({
|
|
65
|
+
className: _popoverModule["default"].arrow
|
|
66
|
+
}, popover, {
|
|
67
|
+
size: 16
|
|
68
|
+
})), typeof children === 'function' ? children({
|
|
69
|
+
popoverToggle: popover.toggle
|
|
70
|
+
}) : children, /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
|
|
71
|
+
glyph: "close",
|
|
72
|
+
as: "button",
|
|
73
|
+
type: "button",
|
|
74
|
+
className: _popoverModule["default"].closeBtn,
|
|
75
|
+
onClick: onCloseButtonClick
|
|
76
|
+
})));
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
exports.Popover = Popover;
|
|
80
|
+
Popover.propTypes = {
|
|
81
|
+
className: _propTypes["default"].string,
|
|
82
|
+
label: _propTypes["default"].element,
|
|
83
|
+
icon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element]),
|
|
84
|
+
children: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element, _propTypes["default"].func]).isRequired,
|
|
85
|
+
ariaLabel: _propTypes["default"].string
|
|
86
|
+
};
|
|
87
|
+
Popover.defaultProps = {
|
|
88
|
+
className: '',
|
|
89
|
+
icon: '',
|
|
90
|
+
label: '',
|
|
91
|
+
ariaLabel: 'View more info'
|
|
92
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
.button {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: flex-start;
|
|
5
|
+
border: none;
|
|
6
|
+
outline: none;
|
|
7
|
+
padding: 0;
|
|
8
|
+
background: none;
|
|
9
|
+
color: inherit;
|
|
10
|
+
cursor: pointer;
|
|
11
|
+
line-height: inherit;
|
|
12
|
+
text-align: inherit;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.button:hover,
|
|
16
|
+
.button:active,
|
|
17
|
+
.button:focus {
|
|
18
|
+
color: var(--color-primary);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.button:hover .label {
|
|
22
|
+
text-decoration: underline;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.popover {
|
|
26
|
+
padding: var(--space-small) var(--space-large) var(--space-small) var(--space-small);
|
|
27
|
+
border-radius: var(--radius-small);
|
|
28
|
+
max-width: 360px;
|
|
29
|
+
outline: none;
|
|
30
|
+
filter: drop-shadow(0 0 var(--space-xxxsmall) var(--color-shadow));
|
|
31
|
+
background: var(--color-light);
|
|
32
|
+
font-size: var(--size-small);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.arrow svg {
|
|
36
|
+
display: block;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.arrow :global .fill {
|
|
40
|
+
fill: var(--color-light);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.arrow :global .stroke {
|
|
44
|
+
fill: var(--color-light);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.closeBtn {
|
|
48
|
+
position: absolute;
|
|
49
|
+
right: 0;
|
|
50
|
+
top: 0;
|
|
51
|
+
width: var(--space-large);
|
|
52
|
+
height: var(--space-large);
|
|
53
|
+
padding: var(--space-xxsmall);
|
|
54
|
+
background: none;
|
|
55
|
+
border: none;
|
|
56
|
+
cursor: pointer;
|
|
57
|
+
color: var(--color-text-ultra-light);
|
|
58
|
+
transition: var(--transition-out);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.closeBtn:hover,
|
|
62
|
+
.closeBtn:active,
|
|
63
|
+
.closeBtn:focus {
|
|
64
|
+
color: var(--color-text-light);
|
|
65
|
+
transition: var(--transition-in);
|
|
66
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
|
|
5
|
+
var _react2 = require("@storybook/react");
|
|
6
|
+
|
|
7
|
+
var _stories = require("../../stories");
|
|
8
|
+
|
|
9
|
+
var _ = require(".");
|
|
10
|
+
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
12
|
+
|
|
13
|
+
var stories = (0, _react2.storiesOf)('UI/Popover', module);
|
|
14
|
+
stories.addDecorator((0, _stories.getWrapperDecorator)({
|
|
15
|
+
padding: '64px'
|
|
16
|
+
}));
|
|
17
|
+
stories.add('default', function () {
|
|
18
|
+
return /*#__PURE__*/_react["default"].createElement(_.Popover, {
|
|
19
|
+
label: "Job #100"
|
|
20
|
+
}, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
|
|
21
|
+
});
|
|
22
|
+
stories.add('with icon', function () {
|
|
23
|
+
return /*#__PURE__*/_react["default"].createElement(_.Popover, {
|
|
24
|
+
icon: "help"
|
|
25
|
+
}, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
|
|
26
|
+
});
|
|
@@ -47,9 +47,11 @@ var SortDropdown = function SortDropdown(props) {
|
|
|
47
47
|
return /*#__PURE__*/_react["default"].createElement(_dropdown.Dropdown, {
|
|
48
48
|
className: rootClassName,
|
|
49
49
|
label: customLabel,
|
|
50
|
-
glyph: "sort"
|
|
50
|
+
glyph: "sort",
|
|
51
|
+
align: "right"
|
|
51
52
|
}, function (_ref) {
|
|
52
53
|
var MenuItem = _ref.MenuItem,
|
|
54
|
+
menu = _ref.menu,
|
|
53
55
|
menuItemClassName = _ref.menuItemClassName,
|
|
54
56
|
menuItemActiveClassName = _ref.menuItemActiveClassName;
|
|
55
57
|
|
|
@@ -59,6 +61,7 @@ var SortDropdown = function SortDropdown(props) {
|
|
|
59
61
|
field: newField,
|
|
60
62
|
direction: newDirection
|
|
61
63
|
});
|
|
64
|
+
menu.toggle();
|
|
62
65
|
};
|
|
63
66
|
};
|
|
64
67
|
|
|
@@ -80,7 +83,7 @@ var SortDropdown = function SortDropdown(props) {
|
|
|
80
83
|
var isActive = field === key;
|
|
81
84
|
return /*#__PURE__*/_react["default"].createElement(MenuItem, _extends({
|
|
82
85
|
key: key
|
|
83
|
-
}, buttonProps, {
|
|
86
|
+
}, menu, buttonProps, {
|
|
84
87
|
className: (0, _classnames["default"])(buttonProps.className, menuItemClassName, _sortDropdownModule["default"].item, isActive && menuItemActiveClassName, isActive && _sortDropdownModule["default"].active)
|
|
85
88
|
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
86
89
|
className: _sortDropdownModule["default"].itemLabel
|
|
@@ -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
|
});
|
|
@@ -13,16 +11,12 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
13
11
|
|
|
14
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
13
|
|
|
16
|
-
var
|
|
14
|
+
var _Tooltip = require("reakit/Tooltip");
|
|
17
15
|
|
|
18
16
|
var _tooltipModule = _interopRequireDefault(require("./tooltip.module.css"));
|
|
19
17
|
|
|
20
18
|
var _excluded = ["className", "title", "children", "as", "containerRef", "darkMode"];
|
|
21
19
|
|
|
22
|
-
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); }
|
|
23
|
-
|
|
24
|
-
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; }
|
|
25
|
-
|
|
26
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
27
21
|
|
|
28
22
|
function _extends() { _extends = Object.assign || 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,9 +25,6 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
31
25
|
|
|
32
26
|
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; }
|
|
33
27
|
|
|
34
|
-
var OFFSET = 9;
|
|
35
|
-
var DELAY = 200;
|
|
36
|
-
|
|
37
28
|
var Tooltip = function Tooltip(props) {
|
|
38
29
|
var className = props.className,
|
|
39
30
|
title = props.title,
|
|
@@ -44,20 +35,21 @@ var Tooltip = function Tooltip(props) {
|
|
|
44
35
|
restProps = _objectWithoutProperties(props, _excluded);
|
|
45
36
|
|
|
46
37
|
var rootClassName = (0, _classnames["default"])(_tooltipModule["default"].root, className);
|
|
47
|
-
var
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
38
|
+
var tooltipProps = (0, _Tooltip.useTooltipState)({
|
|
39
|
+
baseId: process.env.NODE_ENV === 'test' && 'id-test',
|
|
40
|
+
placement: 'top'
|
|
41
|
+
});
|
|
42
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tooltip.TooltipReference, _extends({
|
|
43
|
+
as: Component,
|
|
53
44
|
className: rootClassName
|
|
54
|
-
},
|
|
55
|
-
|
|
56
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
45
|
+
}, ref ? {
|
|
46
|
+
ref: ref
|
|
47
|
+
} : {}, restProps, tooltipProps), children), title && /*#__PURE__*/_react["default"].createElement(_Tooltip.Tooltip, _extends({}, tooltipProps, {
|
|
48
|
+
className: (0, _classnames["default"])(_tooltipModule["default"].tooltip, darkMode && _tooltipModule["default"].tooltipDarkMode)
|
|
49
|
+
}), /*#__PURE__*/_react["default"].createElement(_Tooltip.TooltipArrow, _extends({}, tooltipProps, {
|
|
57
50
|
className: _tooltipModule["default"].arrow,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}), title)));
|
|
51
|
+
size: 12
|
|
52
|
+
})), title));
|
|
61
53
|
};
|
|
62
54
|
|
|
63
55
|
exports.Tooltip = Tooltip;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
.root {
|
|
2
|
-
appearance: none;
|
|
3
|
-
border: none;
|
|
4
|
-
background: none;
|
|
5
2
|
position: relative;
|
|
6
3
|
color: inherit;
|
|
7
4
|
line-height: inherit;
|
|
@@ -23,7 +20,8 @@
|
|
|
23
20
|
line-height: var(--space-small);
|
|
24
21
|
}
|
|
25
22
|
|
|
26
|
-
.arrow {
|
|
23
|
+
.arrow svg {
|
|
24
|
+
display: block;
|
|
27
25
|
fill: var(--color-light);
|
|
28
26
|
}
|
|
29
27
|
|
|
@@ -32,6 +30,6 @@
|
|
|
32
30
|
color: var(--color-light);
|
|
33
31
|
}
|
|
34
32
|
|
|
35
|
-
.tooltipDarkMode .arrow {
|
|
33
|
+
.tooltipDarkMode .arrow svg {
|
|
36
34
|
fill: var(--color-text);
|
|
37
35
|
}
|
|
@@ -12,7 +12,7 @@ import I18N from '../../i18n';
|
|
|
12
12
|
import { FlexStack } from '../../layout/flex-stack';
|
|
13
13
|
import { Icon } from '../../ui/icon';
|
|
14
14
|
import { FileName } from '../../ui/file-name';
|
|
15
|
-
import {
|
|
15
|
+
import { Popover } from '../../ui/popover';
|
|
16
16
|
import { Tooltip } from '../../ui/tooltip';
|
|
17
17
|
import { Filters } from '../../ui/filters';
|
|
18
18
|
import { SortDropdown } from '../../ui/sort-dropdown';
|
|
@@ -86,11 +86,11 @@ const getRenderRowHeader = _ref4 => {
|
|
|
86
86
|
isEntry,
|
|
87
87
|
isInitial
|
|
88
88
|
} = item;
|
|
89
|
-
return /*#__PURE__*/React.createElement(
|
|
90
|
-
label: /*#__PURE__*/React.createElement(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
return /*#__PURE__*/React.createElement(Popover, {
|
|
90
|
+
label: /*#__PURE__*/React.createElement(FileName, {
|
|
91
|
+
name: label
|
|
92
|
+
}),
|
|
93
|
+
icon: /*#__PURE__*/React.createElement("div", {
|
|
94
94
|
className: css.assetInfoFlags
|
|
95
95
|
}, isNotPredictive && /*#__PURE__*/React.createElement(Tooltip, {
|
|
96
96
|
className: css.notPredictive,
|
|
@@ -109,9 +109,7 @@ const getRenderRowHeader = _ref4 => {
|
|
|
109
109
|
}, "e"), isInitial && /*#__PURE__*/React.createElement("span", {
|
|
110
110
|
title: "Initial",
|
|
111
111
|
className: css.flagInitial
|
|
112
|
-
}, "i"))
|
|
113
|
-
name: label
|
|
114
|
-
}))
|
|
112
|
+
}, "i"))
|
|
115
113
|
}, /*#__PURE__*/React.createElement(AssetInfo, {
|
|
116
114
|
className: css.assetInfo,
|
|
117
115
|
item: item,
|
|
@@ -4,7 +4,7 @@ import _get from "lodash/get";
|
|
|
4
4
|
|
|
5
5
|
function _extends() { _extends = Object.assign || 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); }
|
|
6
6
|
|
|
7
|
-
import React, { useMemo } from 'react';
|
|
7
|
+
import React, { useCallback, useMemo, useState } from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import cx from 'classnames';
|
|
10
10
|
import { FILE_TYPE_LABELS, MODULE_SOURCE_FILE_TYPES, MODULE_SOURCE_TYPE, MODULE_CHUNK, MODULE_FILTERS, MODULE_FILE_TYPE } from '@bundle-stats/utils';
|
|
@@ -15,7 +15,7 @@ import { FlexStack } from '../../layout/flex-stack';
|
|
|
15
15
|
import { EmptySet } from '../../ui/empty-set';
|
|
16
16
|
import { FileName } from '../../ui/file-name';
|
|
17
17
|
import { Filters } from '../../ui/filters';
|
|
18
|
-
import {
|
|
18
|
+
import { Popover } from '../../ui/popover';
|
|
19
19
|
import { SortDropdown } from '../../ui/sort-dropdown';
|
|
20
20
|
import { Toolbar } from '../../ui/toolbar';
|
|
21
21
|
import { MetricsTable } from '../metrics-table';
|
|
@@ -35,17 +35,29 @@ const RowHeader = _ref => {
|
|
|
35
35
|
|
|
36
36
|
const chunkIds = _map(chunks, 'id');
|
|
37
37
|
|
|
38
|
+
const [showPopopver, setPopover] = useState(false);
|
|
39
|
+
const handleOnMouseEnter = useCallback(() => setPopover(true), [showPopopver]);
|
|
38
40
|
const content = /*#__PURE__*/React.createElement(FileName, {
|
|
39
41
|
name: row.label
|
|
40
42
|
});
|
|
41
|
-
return /*#__PURE__*/React.createElement(
|
|
43
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
44
|
+
onMouseEnter: handleOnMouseEnter
|
|
45
|
+
}, !showPopopver ? content : /*#__PURE__*/React.createElement(Popover, {
|
|
46
|
+
ariaLabel: "View module info",
|
|
42
47
|
label: content
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
}, _ref2 => {
|
|
49
|
+
let {
|
|
50
|
+
popoverToggle
|
|
51
|
+
} = _ref2;
|
|
52
|
+
return /*#__PURE__*/React.createElement(ModuleInfo, {
|
|
53
|
+
className: css.namePopover,
|
|
54
|
+
item: row,
|
|
55
|
+
chunks: chunks,
|
|
56
|
+
chunkIds: chunkIds,
|
|
57
|
+
labels: labels,
|
|
58
|
+
customComponentLink: CustomComponentLink,
|
|
59
|
+
onClick: popoverToggle
|
|
60
|
+
});
|
|
49
61
|
}));
|
|
50
62
|
};
|
|
51
63
|
|
|
@@ -64,12 +76,12 @@ RowHeader.defaultProps = {
|
|
|
64
76
|
chunks: []
|
|
65
77
|
};
|
|
66
78
|
|
|
67
|
-
const getRenderRowHeader =
|
|
79
|
+
const getRenderRowHeader = _ref3 => {
|
|
68
80
|
let {
|
|
69
81
|
labels,
|
|
70
82
|
chunks,
|
|
71
83
|
CustomComponentLink
|
|
72
|
-
} =
|
|
84
|
+
} = _ref3;
|
|
73
85
|
return row => /*#__PURE__*/React.createElement(RowHeader, {
|
|
74
86
|
row: row,
|
|
75
87
|
chunks: chunks,
|
|
@@ -78,7 +90,7 @@ const getRenderRowHeader = _ref2 => {
|
|
|
78
90
|
});
|
|
79
91
|
};
|
|
80
92
|
|
|
81
|
-
export const BundleModules =
|
|
93
|
+
export const BundleModules = _ref4 => {
|
|
82
94
|
let {
|
|
83
95
|
className,
|
|
84
96
|
jobs,
|
|
@@ -96,7 +108,7 @@ export const BundleModules = _ref3 => {
|
|
|
96
108
|
updateSearch,
|
|
97
109
|
hasActiveFilters,
|
|
98
110
|
customComponentLink: CustomComponentLink
|
|
99
|
-
} =
|
|
111
|
+
} = _ref4;
|
|
100
112
|
const rootClassName = cx(css.root, className);
|
|
101
113
|
const labels = useMemo(() => _map(jobs, 'label'), [jobs]);
|
|
102
114
|
const renderRowHeader = useMemo(() => getRenderRowHeader({
|
|
@@ -131,11 +143,11 @@ export const BundleModules = _ref3 => {
|
|
|
131
143
|
...(!_isEmpty(chunks) && {
|
|
132
144
|
[MODULE_CHUNK]: {
|
|
133
145
|
label: 'Chunk',
|
|
134
|
-
...chunks.reduce((chunkFilters,
|
|
146
|
+
...chunks.reduce((chunkFilters, _ref5) => {
|
|
135
147
|
let {
|
|
136
148
|
id,
|
|
137
149
|
name
|
|
138
|
-
} =
|
|
150
|
+
} = _ref5;
|
|
139
151
|
return { ...chunkFilters,
|
|
140
152
|
[id]: {
|
|
141
153
|
label: name,
|
|
@@ -160,10 +172,10 @@ export const BundleModules = _ref3 => {
|
|
|
160
172
|
className: rootClassName
|
|
161
173
|
}, /*#__PURE__*/React.createElement(Toolbar, {
|
|
162
174
|
className: css.toolbar,
|
|
163
|
-
renderActions:
|
|
175
|
+
renderActions: _ref6 => {
|
|
164
176
|
let {
|
|
165
177
|
actionClassName
|
|
166
|
-
} =
|
|
178
|
+
} = _ref6;
|
|
167
179
|
return /*#__PURE__*/React.createElement(FlexStack, {
|
|
168
180
|
space: "xxsmall",
|
|
169
181
|
className: cx(css.dropdown, actionClassName)
|
|
@@ -10,7 +10,7 @@ import { Stack } from '../../layout/stack';
|
|
|
10
10
|
import { FlexStack } from '../../layout/flex-stack';
|
|
11
11
|
import { EmptySet } from '../../ui/empty-set';
|
|
12
12
|
import { Filters } from '../../ui/filters';
|
|
13
|
-
import {
|
|
13
|
+
import { Popover } from '../../ui/popover';
|
|
14
14
|
import { SortDropdown } from '../../ui/sort-dropdown';
|
|
15
15
|
import { Toolbar } from '../../ui/toolbar';
|
|
16
16
|
import { FileName } from '../../ui/file-name';
|
|
@@ -21,7 +21,7 @@ import { MetricsTableOptions } from '../metrics-table-options';
|
|
|
21
21
|
import { MetricsTableTitle } from '../metrics-table-title';
|
|
22
22
|
import css from './bundle-packages.module.css';
|
|
23
23
|
|
|
24
|
-
const
|
|
24
|
+
const PackagePopoverContent = _ref => {
|
|
25
25
|
let {
|
|
26
26
|
name,
|
|
27
27
|
fullName,
|
|
@@ -33,46 +33,46 @@ const PackageCard = _ref => {
|
|
|
33
33
|
const [normalizedName, packageId] = name.split(PACKAGE_ID_SEPARATOR);
|
|
34
34
|
return /*#__PURE__*/React.createElement(Stack, {
|
|
35
35
|
space: "xxsmall",
|
|
36
|
-
className: css.
|
|
36
|
+
className: css.packagePopover
|
|
37
37
|
}, /*#__PURE__*/React.createElement(Stack, {
|
|
38
38
|
space: "xxxsmall"
|
|
39
39
|
}, /*#__PURE__*/React.createElement("h3", {
|
|
40
|
-
className: css.
|
|
40
|
+
className: css.packagePopoverTitle
|
|
41
41
|
}, normalizedName, packageId && /*#__PURE__*/React.createElement("span", {
|
|
42
|
-
className: css.
|
|
42
|
+
className: css.packagePopoverTitleIndex
|
|
43
43
|
}, `${PACKAGE_ID_SEPARATOR}${packageId}`)), /*#__PURE__*/React.createElement("p", {
|
|
44
|
-
className: css.
|
|
44
|
+
className: css.packagePopoverPath
|
|
45
45
|
}, /*#__PURE__*/React.createElement(FileName, {
|
|
46
|
-
className: css.
|
|
46
|
+
className: css.packagePopoverPathValue,
|
|
47
47
|
name: normalizedPackagePath
|
|
48
48
|
}))), /*#__PURE__*/React.createElement("ul", {
|
|
49
|
-
className: css.
|
|
49
|
+
className: css.packagePopoverList
|
|
50
50
|
}, /*#__PURE__*/React.createElement("li", {
|
|
51
|
-
className: css.
|
|
51
|
+
className: css.packagePopoverItem
|
|
52
52
|
}, /*#__PURE__*/React.createElement("a", {
|
|
53
53
|
href: `https://www.npmjs.com/package/${normalizedName}`,
|
|
54
54
|
target: "_blank",
|
|
55
55
|
rel: "noreferrer"
|
|
56
56
|
}, "npmjs.com")), /*#__PURE__*/React.createElement("li", {
|
|
57
|
-
className: css.
|
|
57
|
+
className: css.packagePopoverItem
|
|
58
58
|
}, /*#__PURE__*/React.createElement("a", {
|
|
59
59
|
href: `https://bundlephobia.com/result?p=${normalizedName}`,
|
|
60
60
|
target: "_blank",
|
|
61
61
|
rel: "noreferrer"
|
|
62
62
|
}, "bundlephobia.com"))), /*#__PURE__*/React.createElement(Stack, {
|
|
63
63
|
space: "xxxsmall",
|
|
64
|
-
className: css.
|
|
64
|
+
className: css.packagePopover.actions
|
|
65
65
|
}, duplicate && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(CustomComponentLink, getBundlePackagesByNameComponentLink(normalizedName), "View all duplicate instances")), /*#__PURE__*/React.createElement(CustomComponentLink, getBundleModulesBySearch(normalizedPackagePath), "Search modules by package path")));
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
PackagePopoverContent.propTypes = {
|
|
69
69
|
name: PropTypes.string.isRequired,
|
|
70
70
|
path: PropTypes.string,
|
|
71
71
|
fullName: PropTypes.string.isRequired,
|
|
72
72
|
duplicate: PropTypes.bool.isRequired,
|
|
73
73
|
CustomComponentLink: PropTypes.elementType.isRequired
|
|
74
74
|
};
|
|
75
|
-
|
|
75
|
+
PackagePopoverContent.defaultProps = {
|
|
76
76
|
path: ''
|
|
77
77
|
};
|
|
78
78
|
|
|
@@ -85,24 +85,19 @@ const PackageRowHeader = _ref2 => {
|
|
|
85
85
|
const {
|
|
86
86
|
path
|
|
87
87
|
} = item.runs[0] || {};
|
|
88
|
-
return /*#__PURE__*/React.createElement(
|
|
89
|
-
space: "xxxsmall",
|
|
88
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
90
89
|
className: css.packageNames
|
|
91
90
|
}, packageNames.map((packageName, index) => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
className: css.
|
|
95
|
-
}, index === packageNames.length - 1 && item.duplicate && /*#__PURE__*/React.createElement("span", {
|
|
96
|
-
className: css.packageNameDuplicate,
|
|
91
|
+
// Render duplicate flag only for the last entry
|
|
92
|
+
const duplicateFlag = index === packageNames.length - 1 && item.duplicate && /*#__PURE__*/React.createElement("span", {
|
|
93
|
+
className: css.duplicate,
|
|
97
94
|
title: "Duplicate package"
|
|
98
|
-
}, "D")
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
label:
|
|
103
|
-
|
|
104
|
-
className: css.packageName
|
|
105
|
-
}, /*#__PURE__*/React.createElement(PackageCard, {
|
|
95
|
+
}, "D");
|
|
96
|
+
return /*#__PURE__*/React.createElement(Popover, {
|
|
97
|
+
className: css.packageName,
|
|
98
|
+
icon: duplicateFlag,
|
|
99
|
+
label: packageName
|
|
100
|
+
}, /*#__PURE__*/React.createElement(PackagePopoverContent, {
|
|
106
101
|
name: packageName,
|
|
107
102
|
path: path,
|
|
108
103
|
fullName: item.label,
|