@pingux/astro 2.0.4-alpha.1 → 2.0.4-alpha.3
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/cjs/components/ListView/ListView.js +16 -1
- package/lib/cjs/components/ListView/ListView.test.js +14 -0
- package/lib/cjs/components/ListViewItem/ListViewItem.js +6 -2
- package/lib/cjs/recipes/TrialExperienceStatusBar.stories.js +55 -31
- package/lib/components/ListView/ListView.js +17 -2
- package/lib/components/ListView/ListView.test.js +15 -1
- package/lib/components/ListViewItem/ListViewItem.js +6 -2
- package/lib/recipes/TrialExperienceStatusBar.stories.js +55 -30
- package/package.json +1 -1
@@ -19,6 +19,7 @@ exports.useListLayout = useListLayout;
|
|
19
19
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
|
20
20
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
21
21
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
22
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
22
23
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
23
24
|
var _react = _interopRequireWildcard(require("react"));
|
24
25
|
var _i18n = require("@react-aria/i18n");
|
@@ -91,6 +92,10 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
91
92
|
selectionMode = props.selectionMode,
|
92
93
|
selectionStyle = props.selectionStyle,
|
93
94
|
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
95
|
+
var _useState = (0, _react.useState)(null),
|
96
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
97
|
+
hoveredItem = _useState2[0],
|
98
|
+
setHoveredItem = _useState2[1];
|
94
99
|
var isLoading = loadingState === _loadingStates["default"].LOADING_MORE || loadingState === _loadingStates["default"].LOADING;
|
95
100
|
var renderWrapper = function renderWrapper(parent, reusableView) {
|
96
101
|
return (0, _react2.jsx)(_virtualizer.VirtualizerItem, {
|
@@ -108,6 +113,10 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
108
113
|
var state = (0, _list2.useListState)(_objectSpread(_objectSpread({}, props), {}, {
|
109
114
|
selectionBehavior: selectionStyle === 'highlight' ? 'replace' : 'toggle'
|
110
115
|
}));
|
116
|
+
state.hover = {
|
117
|
+
hoveredItem: hoveredItem,
|
118
|
+
setHoveredItem: setHoveredItem
|
119
|
+
};
|
111
120
|
var collection = state.collection,
|
112
121
|
selectionManager = state.selectionManager;
|
113
122
|
var layout = useListLayout(state);
|
@@ -127,6 +136,11 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
127
136
|
others.onFocus(e);
|
128
137
|
}
|
129
138
|
};
|
139
|
+
|
140
|
+
// This code removes hover when scrolling ListView in the Firefox browser.
|
141
|
+
var resetHoverState = function resetHoverState() {
|
142
|
+
state.hover.setHoveredItem(null);
|
143
|
+
};
|
130
144
|
return (0, _react2.jsx)(_ListViewContext.ListViewContext.Provider, {
|
131
145
|
value: {
|
132
146
|
state: state
|
@@ -143,7 +157,8 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
143
157
|
collection: collection,
|
144
158
|
transitionDuration: 0
|
145
159
|
}, others, {
|
146
|
-
onFocus: onFocus
|
160
|
+
onFocus: onFocus,
|
161
|
+
onScroll: resetHoverState
|
147
162
|
}), function (type, item) {
|
148
163
|
if (type === 'item') {
|
149
164
|
return (0, _react2.jsx)(_ListViewItem["default"], {
|
@@ -333,4 +333,18 @@ test('list view not receive focus when click on checkbox', function () {
|
|
333
333
|
expect(listItem[0]).not.toHaveClass('is-focused');
|
334
334
|
checkbox[0].click();
|
335
335
|
expect(listItem[0]).not.toHaveClass('is-focused');
|
336
|
+
});
|
337
|
+
test('list view reset hover on item when scroll', function () {
|
338
|
+
getComponent();
|
339
|
+
var listView = _testWrapper.screen.getAllByRole('grid');
|
340
|
+
var listItem = _testWrapper.screen.getAllByRole('gridcell');
|
341
|
+
expect(listItem[0]).not.toHaveClass('is-hovered');
|
342
|
+
_userEvent["default"].hover(listItem[0]);
|
343
|
+
expect(listItem[0]).toHaveClass('is-hovered');
|
344
|
+
_testWrapper.fireEvent.scroll(listView[0], {
|
345
|
+
target: {
|
346
|
+
scrollY: 100
|
347
|
+
}
|
348
|
+
});
|
349
|
+
expect(listItem[0]).not.toHaveClass('is-hovered');
|
336
350
|
});
|
@@ -45,7 +45,11 @@ var ListViewItem = function ListViewItem(props) {
|
|
45
45
|
var _useFocusRing2 = (0, _reactAria.useFocusRing)(),
|
46
46
|
focusProps = _useFocusRing2.focusProps,
|
47
47
|
isFocusVisible = _useFocusRing2.isFocusVisible;
|
48
|
-
var _useHover = (0, _interactions.useHover)({
|
48
|
+
var _useHover = (0, _interactions.useHover)({
|
49
|
+
onHoverStart: function onHoverStart() {
|
50
|
+
state.hover.setHoveredItem(item.key);
|
51
|
+
}
|
52
|
+
}),
|
49
53
|
hoverProps = _useHover.hoverProps,
|
50
54
|
isHovered = _useHover.isHovered;
|
51
55
|
var _useListItem = (0, _list.useListItem)({
|
@@ -58,7 +62,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
58
62
|
var isSelected = state.selectionManager.isSelected(item.key);
|
59
63
|
var mergedProps = (0, _reactAria.mergeProps)(raRowProps, hoverProps, focusWithinProps, focusProps);
|
60
64
|
var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
|
61
|
-
isHovered: isSelectable && isHovered && isHoverable,
|
65
|
+
isHovered: isSelectable && isHovered && isHoverable && item.key === state.hover.hoveredItem,
|
62
66
|
isSelected: isSelected,
|
63
67
|
isFocused: isDisabled ? false : isFocusVisible || isFocusVisibleWithin,
|
64
68
|
hasSeparator: hasSeparator,
|
@@ -1,9 +1,15 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
-
var
|
5
|
-
var _Object$
|
4
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
6
|
+
var _filterInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
6
7
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
8
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
9
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
10
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
11
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
12
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
7
13
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
8
14
|
_Object$defineProperty(exports, "__esModule", {
|
9
15
|
value: true
|
@@ -13,6 +19,7 @@ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-s
|
|
13
19
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
14
20
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
15
21
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
16
23
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
17
24
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
18
25
|
var _react = _interopRequireWildcard(require("react"));
|
@@ -21,6 +28,8 @@ var _index = require("../index");
|
|
21
28
|
var _react2 = require("@emotion/react");
|
22
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); }
|
23
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
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
32
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context3 = ownKeys(Object(source), !0)).call(_context3, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
24
33
|
var _default = {
|
25
34
|
title: 'Recipes/Trial Experience Nav'
|
26
35
|
};
|
@@ -139,6 +148,8 @@ var sx = {
|
|
139
148
|
maxWidth: '195px'
|
140
149
|
},
|
141
150
|
linkRowIconButton: {
|
151
|
+
height: '23.5px',
|
152
|
+
width: '23.5px',
|
142
153
|
'&.is-pressed': {
|
143
154
|
backgroundColor: 'transparent'
|
144
155
|
},
|
@@ -164,10 +175,9 @@ var sx = {
|
|
164
175
|
linkRowSeparator: {
|
165
176
|
flexGrow: 1,
|
166
177
|
backgroundColor: 'accent.30',
|
167
|
-
maxHeight: '100%',
|
168
178
|
width: '1px !important',
|
169
179
|
zIndex: 2,
|
170
|
-
m: '-
|
180
|
+
m: '-4px 5px -5px 11.5px !important'
|
171
181
|
},
|
172
182
|
linkRowText: {
|
173
183
|
fontSize: 'md',
|
@@ -186,11 +196,11 @@ var sx = {
|
|
186
196
|
boxShadow: '3px 8px 4px rgba(202, 206, 211, 0.36)'
|
187
197
|
}
|
188
198
|
};
|
189
|
-
var Stage = function Stage(
|
190
|
-
var title =
|
191
|
-
icon =
|
192
|
-
links =
|
193
|
-
isLastStage =
|
199
|
+
var Stage = function Stage(_ref) {
|
200
|
+
var title = _ref.title,
|
201
|
+
icon = _ref.icon,
|
202
|
+
links = _ref.links,
|
203
|
+
isLastStage = _ref.isLastStage;
|
194
204
|
var _useState = (0, _react.useState)([]),
|
195
205
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
196
206
|
selectedLinks = _useState2[0],
|
@@ -239,43 +249,57 @@ var Stage = function Stage(props) {
|
|
239
249
|
}));
|
240
250
|
}))));
|
241
251
|
};
|
242
|
-
var LinkRow = function LinkRow(
|
243
|
-
var
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
252
|
+
var LinkRow = function LinkRow(_ref2) {
|
253
|
+
var index = _ref2.index,
|
254
|
+
isLastLink = _ref2.isLastLink,
|
255
|
+
isLinkSelected = _ref2.isLinkSelected,
|
256
|
+
onSelectionChange = _ref2.onSelectionChange,
|
257
|
+
title = _ref2.title;
|
248
258
|
var _useState3 = (0, _react.useState)(false),
|
249
259
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
250
260
|
isSelected = _useState4[0],
|
251
261
|
handleSelectionChange = _useState4[1];
|
262
|
+
var _useState5 = (0, _react.useState)(0),
|
263
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
264
|
+
verticalSeparatorHeight = _useState6[0],
|
265
|
+
setVerticalSeparatorHeight = _useState6[1];
|
266
|
+
var iconRef = (0, _react.useRef)();
|
267
|
+
var rowRef = (0, _react.useRef)();
|
268
|
+
(0, _react.useEffect)(function () {
|
269
|
+
var _rowRef$current$getBo = rowRef.current.getBoundingClientRect(),
|
270
|
+
height = _rowRef$current$getBo.height;
|
271
|
+
var _iconRef$current$getB = iconRef.current.getBoundingClientRect(),
|
272
|
+
iconRefHeight = _iconRef$current$getB.height;
|
273
|
+
var marginAccommodation = 4;
|
274
|
+
var halfIconHeight = iconRefHeight / 2;
|
275
|
+
setVerticalSeparatorHeight(height - halfIconHeight - marginAccommodation);
|
276
|
+
}, [iconRef, rowRef]);
|
252
277
|
var onIconPress = function onIconPress() {
|
253
278
|
handleSelectionChange(!isSelected);
|
254
279
|
onSelectionChange(index);
|
255
280
|
};
|
256
281
|
return (0, _react2.jsx)(_index.Box, {
|
257
|
-
isRow: true
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
width: '23.5px'
|
262
|
-
}
|
263
|
-
}, (0, _react2.jsx)(_index.IconButton, {
|
282
|
+
isRow: true,
|
283
|
+
ref: rowRef
|
284
|
+
}, (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.IconButton, {
|
285
|
+
"aria-label": "completed step icon indicator",
|
264
286
|
onPress: onIconPress,
|
265
|
-
|
266
|
-
|
287
|
+
ref: iconRef,
|
288
|
+
sx: sx.linkRowIconButton
|
267
289
|
}, (0, _react2.jsx)(_index.Icon, {
|
268
290
|
icon: isSelected ? _CheckCircleIcon["default"] : RadioButtonIcon,
|
269
291
|
size: "sm",
|
270
292
|
sx: isSelected ? sx.linkRowIconButton : sx.linkRowIconNotSelected
|
271
|
-
}))
|
272
|
-
|
273
|
-
|
274
|
-
|
293
|
+
})), !isLastLink && isLinkSelected && (0, _react2.jsx)(_index.Separator, {
|
294
|
+
orientation: "vertical",
|
295
|
+
sx: _objectSpread(_objectSpread({}, sx.linkRowSeparator), {}, {
|
296
|
+
maxHeight: verticalSeparatorHeight
|
297
|
+
})
|
298
|
+
})), (0, _react2.jsx)(_index.Link, {
|
275
299
|
href: "https://www.pingidentity.com",
|
276
|
-
|
277
|
-
|
278
|
-
}, title))
|
300
|
+
sx: sx.linkRowText,
|
301
|
+
target: "_blank"
|
302
|
+
}, title));
|
279
303
|
};
|
280
304
|
var Default = function Default() {
|
281
305
|
// Open the `Story` addons tab to view the source code for full context.
|
@@ -8,12 +8,13 @@ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/obje
|
|
8
8
|
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
9
9
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
10
10
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
11
|
+
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
11
12
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
12
13
|
var _excluded = ["disabledKeys", "isHoverable", "loadingState", "onLoadMore", "onSelectionChange", "selectedKeys", "selectionMode", "selectionStyle"];
|
13
14
|
import _Object$values from "@babel/runtime-corejs3/core-js-stable/object/values";
|
14
15
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
15
16
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
16
|
-
import React, { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';
|
17
|
+
import React, { forwardRef, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
17
18
|
import { useCollator } from '@react-aria/i18n';
|
18
19
|
import { useList } from '@react-aria/list';
|
19
20
|
import { Virtualizer, VirtualizerItem } from '@react-aria/virtualizer';
|
@@ -78,6 +79,10 @@ var ListView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
78
79
|
selectionMode = props.selectionMode,
|
79
80
|
selectionStyle = props.selectionStyle,
|
80
81
|
others = _objectWithoutProperties(props, _excluded);
|
82
|
+
var _useState = useState(null),
|
83
|
+
_useState2 = _slicedToArray(_useState, 2),
|
84
|
+
hoveredItem = _useState2[0],
|
85
|
+
setHoveredItem = _useState2[1];
|
81
86
|
var isLoading = loadingState === loadingStates.LOADING_MORE || loadingState === loadingStates.LOADING;
|
82
87
|
var renderWrapper = function renderWrapper(parent, reusableView) {
|
83
88
|
return ___EmotionJSX(VirtualizerItem, {
|
@@ -95,6 +100,10 @@ var ListView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
95
100
|
var state = useListState(_objectSpread(_objectSpread({}, props), {}, {
|
96
101
|
selectionBehavior: selectionStyle === 'highlight' ? 'replace' : 'toggle'
|
97
102
|
}));
|
103
|
+
state.hover = {
|
104
|
+
hoveredItem: hoveredItem,
|
105
|
+
setHoveredItem: setHoveredItem
|
106
|
+
};
|
98
107
|
var collection = state.collection,
|
99
108
|
selectionManager = state.selectionManager;
|
100
109
|
var layout = useListLayout(state);
|
@@ -114,6 +123,11 @@ var ListView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
114
123
|
others.onFocus(e);
|
115
124
|
}
|
116
125
|
};
|
126
|
+
|
127
|
+
// This code removes hover when scrolling ListView in the Firefox browser.
|
128
|
+
var resetHoverState = function resetHoverState() {
|
129
|
+
state.hover.setHoveredItem(null);
|
130
|
+
};
|
117
131
|
return ___EmotionJSX(ListViewContext.Provider, {
|
118
132
|
value: {
|
119
133
|
state: state
|
@@ -130,7 +144,8 @@ var ListView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
130
144
|
collection: collection,
|
131
145
|
transitionDuration: 0
|
132
146
|
}, others, {
|
133
|
-
onFocus: onFocus
|
147
|
+
onFocus: onFocus,
|
148
|
+
onScroll: resetHoverState
|
134
149
|
}), function (type, item) {
|
135
150
|
if (type === 'item') {
|
136
151
|
return ___EmotionJSX(ListViewItem, {
|
@@ -18,7 +18,7 @@ import { Item } from 'react-stately';
|
|
18
18
|
import userEvent from '@testing-library/user-event';
|
19
19
|
import _ from 'lodash';
|
20
20
|
import loadingStates from '../../utils/devUtils/constants/loadingStates';
|
21
|
-
import { render, screen } from '../../utils/testUtils/testWrapper';
|
21
|
+
import { fireEvent, render, screen } from '../../utils/testUtils/testWrapper';
|
22
22
|
import CheckboxField from '../CheckboxField';
|
23
23
|
import ListView from './ListView';
|
24
24
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
@@ -330,4 +330,18 @@ test('list view not receive focus when click on checkbox', function () {
|
|
330
330
|
expect(listItem[0]).not.toHaveClass('is-focused');
|
331
331
|
checkbox[0].click();
|
332
332
|
expect(listItem[0]).not.toHaveClass('is-focused');
|
333
|
+
});
|
334
|
+
test('list view reset hover on item when scroll', function () {
|
335
|
+
getComponent();
|
336
|
+
var listView = screen.getAllByRole('grid');
|
337
|
+
var listItem = screen.getAllByRole('gridcell');
|
338
|
+
expect(listItem[0]).not.toHaveClass('is-hovered');
|
339
|
+
userEvent.hover(listItem[0]);
|
340
|
+
expect(listItem[0]).toHaveClass('is-hovered');
|
341
|
+
fireEvent.scroll(listView[0], {
|
342
|
+
target: {
|
343
|
+
scrollY: 100
|
344
|
+
}
|
345
|
+
});
|
346
|
+
expect(listItem[0]).not.toHaveClass('is-hovered');
|
333
347
|
});
|
@@ -32,7 +32,11 @@ var ListViewItem = function ListViewItem(props) {
|
|
32
32
|
var _useFocusRing2 = useFocusRing(),
|
33
33
|
focusProps = _useFocusRing2.focusProps,
|
34
34
|
isFocusVisible = _useFocusRing2.isFocusVisible;
|
35
|
-
var _useHover = useHover({
|
35
|
+
var _useHover = useHover({
|
36
|
+
onHoverStart: function onHoverStart() {
|
37
|
+
state.hover.setHoveredItem(item.key);
|
38
|
+
}
|
39
|
+
}),
|
36
40
|
hoverProps = _useHover.hoverProps,
|
37
41
|
isHovered = _useHover.isHovered;
|
38
42
|
var _useListItem = useListItem({
|
@@ -45,7 +49,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
45
49
|
var isSelected = state.selectionManager.isSelected(item.key);
|
46
50
|
var mergedProps = mergeProps(raRowProps, hoverProps, focusWithinProps, focusProps);
|
47
51
|
var _useStatusClasses = useStatusClasses(className, {
|
48
|
-
isHovered: isSelectable && isHovered && isHoverable,
|
52
|
+
isHovered: isSelectable && isHovered && isHoverable && item.key === state.hover.hoveredItem,
|
49
53
|
isSelected: isSelected,
|
50
54
|
isFocused: isDisabled ? false : isFocusVisible || isFocusVisibleWithin,
|
51
55
|
hasSeparator: hasSeparator,
|
@@ -1,10 +1,20 @@
|
|
1
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
1
2
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
2
3
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
4
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context3 = ownKeys(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
3
6
|
import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
|
4
7
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
5
8
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
6
9
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
7
|
-
import
|
10
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
11
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
12
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
13
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
14
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
15
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
16
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
17
|
+
import React, { useEffect, useRef, useState } from 'react';
|
8
18
|
import CheckCircleIcon from 'mdi-react/CheckCircleIcon';
|
9
19
|
import { Box, Icon, IconButton, Link, Separator, Text } from '../index';
|
10
20
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
@@ -125,6 +135,8 @@ var sx = {
|
|
125
135
|
maxWidth: '195px'
|
126
136
|
},
|
127
137
|
linkRowIconButton: {
|
138
|
+
height: '23.5px',
|
139
|
+
width: '23.5px',
|
128
140
|
'&.is-pressed': {
|
129
141
|
backgroundColor: 'transparent'
|
130
142
|
},
|
@@ -150,10 +162,9 @@ var sx = {
|
|
150
162
|
linkRowSeparator: {
|
151
163
|
flexGrow: 1,
|
152
164
|
backgroundColor: 'accent.30',
|
153
|
-
maxHeight: '100%',
|
154
165
|
width: '1px !important',
|
155
166
|
zIndex: 2,
|
156
|
-
m: '-
|
167
|
+
m: '-4px 5px -5px 11.5px !important'
|
157
168
|
},
|
158
169
|
linkRowText: {
|
159
170
|
fontSize: 'md',
|
@@ -172,11 +183,11 @@ var sx = {
|
|
172
183
|
boxShadow: '3px 8px 4px rgba(202, 206, 211, 0.36)'
|
173
184
|
}
|
174
185
|
};
|
175
|
-
var Stage = function Stage(
|
176
|
-
var title =
|
177
|
-
icon =
|
178
|
-
links =
|
179
|
-
isLastStage =
|
186
|
+
var Stage = function Stage(_ref) {
|
187
|
+
var title = _ref.title,
|
188
|
+
icon = _ref.icon,
|
189
|
+
links = _ref.links,
|
190
|
+
isLastStage = _ref.isLastStage;
|
180
191
|
var _useState = useState([]),
|
181
192
|
_useState2 = _slicedToArray(_useState, 2),
|
182
193
|
selectedLinks = _useState2[0],
|
@@ -225,43 +236,57 @@ var Stage = function Stage(props) {
|
|
225
236
|
}));
|
226
237
|
}))));
|
227
238
|
};
|
228
|
-
var LinkRow = function LinkRow(
|
229
|
-
var
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
239
|
+
var LinkRow = function LinkRow(_ref2) {
|
240
|
+
var index = _ref2.index,
|
241
|
+
isLastLink = _ref2.isLastLink,
|
242
|
+
isLinkSelected = _ref2.isLinkSelected,
|
243
|
+
onSelectionChange = _ref2.onSelectionChange,
|
244
|
+
title = _ref2.title;
|
234
245
|
var _useState3 = useState(false),
|
235
246
|
_useState4 = _slicedToArray(_useState3, 2),
|
236
247
|
isSelected = _useState4[0],
|
237
248
|
handleSelectionChange = _useState4[1];
|
249
|
+
var _useState5 = useState(0),
|
250
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
251
|
+
verticalSeparatorHeight = _useState6[0],
|
252
|
+
setVerticalSeparatorHeight = _useState6[1];
|
253
|
+
var iconRef = useRef();
|
254
|
+
var rowRef = useRef();
|
255
|
+
useEffect(function () {
|
256
|
+
var _rowRef$current$getBo = rowRef.current.getBoundingClientRect(),
|
257
|
+
height = _rowRef$current$getBo.height;
|
258
|
+
var _iconRef$current$getB = iconRef.current.getBoundingClientRect(),
|
259
|
+
iconRefHeight = _iconRef$current$getB.height;
|
260
|
+
var marginAccommodation = 4;
|
261
|
+
var halfIconHeight = iconRefHeight / 2;
|
262
|
+
setVerticalSeparatorHeight(height - halfIconHeight - marginAccommodation);
|
263
|
+
}, [iconRef, rowRef]);
|
238
264
|
var onIconPress = function onIconPress() {
|
239
265
|
handleSelectionChange(!isSelected);
|
240
266
|
onSelectionChange(index);
|
241
267
|
};
|
242
268
|
return ___EmotionJSX(Box, {
|
243
|
-
isRow: true
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
width: '23.5px'
|
248
|
-
}
|
249
|
-
}, ___EmotionJSX(IconButton, {
|
269
|
+
isRow: true,
|
270
|
+
ref: rowRef
|
271
|
+
}, ___EmotionJSX(Box, null, ___EmotionJSX(IconButton, {
|
272
|
+
"aria-label": "completed step icon indicator",
|
250
273
|
onPress: onIconPress,
|
251
|
-
|
252
|
-
|
274
|
+
ref: iconRef,
|
275
|
+
sx: sx.linkRowIconButton
|
253
276
|
}, ___EmotionJSX(Icon, {
|
254
277
|
icon: isSelected ? CheckCircleIcon : RadioButtonIcon,
|
255
278
|
size: "sm",
|
256
279
|
sx: isSelected ? sx.linkRowIconButton : sx.linkRowIconNotSelected
|
257
|
-
}))
|
258
|
-
|
259
|
-
|
260
|
-
|
280
|
+
})), !isLastLink && isLinkSelected && ___EmotionJSX(Separator, {
|
281
|
+
orientation: "vertical",
|
282
|
+
sx: _objectSpread(_objectSpread({}, sx.linkRowSeparator), {}, {
|
283
|
+
maxHeight: verticalSeparatorHeight
|
284
|
+
})
|
285
|
+
})), ___EmotionJSX(Link, {
|
261
286
|
href: "https://www.pingidentity.com",
|
262
|
-
|
263
|
-
|
264
|
-
}, title))
|
287
|
+
sx: sx.linkRowText,
|
288
|
+
target: "_blank"
|
289
|
+
}, title));
|
265
290
|
};
|
266
291
|
export var Default = function Default() {
|
267
292
|
// Open the `Story` addons tab to view the source code for full context.
|