@pingux/astro 1.7.0 → 1.8.0-alpha.2
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/AccordionGridGroup/AccordionGridGroup.js +1 -0
- package/lib/cjs/components/AccordionGridItem/AccordionGridItem.js +3 -0
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +3 -0
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +10 -4
- package/lib/cjs/components/ArrayField/ArrayField.test.js +13 -0
- package/lib/cjs/components/ArrayField/ArrayFieldDeleteButton.js +3 -8
- package/lib/cjs/components/AstroWrapper/AstroWrapper.js +4 -4
- package/lib/cjs/components/CodeView/CodeView.js +11 -4
- package/lib/cjs/components/CodeView/CodeView.stories.js +33 -2
- package/lib/cjs/components/ComboBoxField/ComboBoxField.js +1 -1
- package/lib/cjs/components/ComboBoxField/ComboBoxField.test.js +8 -4
- package/lib/cjs/components/Image/Image.js +132 -11
- package/lib/cjs/components/Image/Image.stories.js +52 -6
- package/lib/cjs/components/Image/Image.test.js +138 -2
- package/lib/cjs/components/Image/imageConstants.js +13 -0
- package/lib/cjs/components/ImageUploadField/ImageUploadField.test.js +27 -8
- package/lib/cjs/components/ListViewItem/ListViewItem.js +2 -1
- package/lib/cjs/components/MultiselectFilter/MultiselectFilter.js +1 -1
- package/lib/cjs/components/MultiselectFilterItem/MultiselectFilterItem.js +32 -11
- package/lib/cjs/components/MultiselectFilterItem/MultiselectFilterItem.test.js +13 -1
- package/lib/cjs/components/NavBar/NavBar.js +20 -8
- package/lib/cjs/components/NavBar/NavBar.stories.js +3 -2
- package/lib/cjs/components/NavBarSection/NavBarItem.js +1 -1
- package/lib/cjs/components/NavBarSection/NavBarItemButton.js +1 -1
- package/lib/cjs/components/NavBarSection/NavBarItemHeader.js +61 -4
- package/lib/cjs/components/NavBarSection/NavBarItemLink.js +1 -1
- package/lib/cjs/components/NavBarSection/NavBarSection.js +5 -2
- package/lib/cjs/components/NumberField/NumberField.js +32 -2
- package/lib/cjs/components/Text/Text.js +5 -1
- package/lib/cjs/components/Text/Text.stories.js +56 -2
- package/lib/cjs/components/Text/Text.test.js +46 -0
- package/lib/cjs/components/TimeZonePicker/TimeZonePicker.js +21 -10
- package/lib/cjs/hooks/index.js +10 -1
- package/lib/cjs/hooks/useFallbackImage/index.js +18 -0
- package/lib/cjs/hooks/useFallbackImage/useFallbackImage.js +46 -0
- package/lib/cjs/hooks/useFallbackImage/useFallbackImage.test.js +65 -0
- package/lib/cjs/hooks/useNavBarPress/useNavBarPress.js +3 -3
- package/lib/cjs/hooks/useNavBarPress/useNavBarPress.test.js +4 -4
- package/lib/cjs/recipes/MultiselectListContainer.stories.js +352 -0
- package/lib/cjs/styles/forms/input.js +2 -1
- package/lib/cjs/styles/variants/accordion.js +1 -1
- package/lib/cjs/styles/variants/boxes.js +2 -2
- package/lib/cjs/styles/variants/multiselectListContainer.js +4 -6
- package/lib/cjs/styles/variants/navBar.js +10 -1
- package/lib/cjs/styles/variants/separator.js +3 -3
- package/lib/cjs/styles/variants/text.js +5 -3
- package/lib/components/AccordionGridGroup/AccordionGridGroup.js +1 -0
- package/lib/components/AccordionGridItem/AccordionGridItem.js +3 -0
- package/lib/components/AccordionGridItem/AccordionGridItemBody.js +3 -0
- package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +10 -4
- package/lib/components/ArrayField/ArrayField.test.js +9 -0
- package/lib/components/ArrayField/ArrayFieldDeleteButton.js +3 -8
- package/lib/components/AstroWrapper/AstroWrapper.js +4 -4
- package/lib/components/CodeView/CodeView.js +12 -5
- package/lib/components/CodeView/CodeView.stories.js +26 -0
- package/lib/components/ComboBoxField/ComboBoxField.js +1 -1
- package/lib/components/ComboBoxField/ComboBoxField.test.js +8 -4
- package/lib/components/Image/Image.js +123 -9
- package/lib/components/Image/Image.stories.js +39 -4
- package/lib/components/Image/Image.test.js +118 -1
- package/lib/components/Image/imageConstants.js +2 -0
- package/lib/components/ImageUploadField/ImageUploadField.test.js +27 -7
- package/lib/components/ListViewItem/ListViewItem.js +2 -1
- package/lib/components/MultiselectFilter/MultiselectFilter.js +1 -1
- package/lib/components/MultiselectFilterItem/MultiselectFilterItem.js +35 -12
- package/lib/components/MultiselectFilterItem/MultiselectFilterItem.test.js +11 -1
- package/lib/components/NavBar/NavBar.js +20 -8
- package/lib/components/NavBar/NavBar.stories.js +3 -2
- package/lib/components/NavBarSection/NavBarItem.js +1 -1
- package/lib/components/NavBarSection/NavBarItemButton.js +1 -1
- package/lib/components/NavBarSection/NavBarItemHeader.js +46 -4
- package/lib/components/NavBarSection/NavBarItemLink.js +1 -1
- package/lib/components/NavBarSection/NavBarSection.js +5 -2
- package/lib/components/NumberField/NumberField.js +32 -2
- package/lib/components/Text/Text.js +7 -2
- package/lib/components/Text/Text.stories.js +50 -0
- package/lib/components/Text/Text.test.js +36 -0
- package/lib/components/TimeZonePicker/TimeZonePicker.js +21 -10
- package/lib/hooks/index.js +2 -1
- package/lib/hooks/useFallbackImage/index.js +1 -0
- package/lib/hooks/useFallbackImage/useFallbackImage.js +32 -0
- package/lib/hooks/useFallbackImage/useFallbackImage.test.js +51 -0
- package/lib/hooks/useNavBarPress/useNavBarPress.js +3 -3
- package/lib/hooks/useNavBarPress/useNavBarPress.test.js +4 -4
- package/lib/recipes/MultiselectListContainer.stories.js +306 -0
- package/lib/styles/forms/input.js +2 -1
- package/lib/styles/variants/accordion.js +1 -1
- package/lib/styles/variants/boxes.js +2 -2
- package/lib/styles/variants/multiselectListContainer.js +4 -6
- package/lib/styles/variants/navBar.js +10 -1
- package/lib/styles/variants/separator.js +3 -3
- package/lib/styles/variants/text.js +5 -3
- package/package.json +2 -1
@@ -8,14 +8,18 @@ _Object$defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
9
9
|
});
|
10
10
|
|
11
|
-
exports["default"] = exports.Disabled = exports.Default = exports.CustomSizeAndRadius = exports.Avatar = void 0;
|
11
|
+
exports["default"] = exports.WithSkeletonLoadTimeout = exports.WithSkeletonLoadSuccess = exports.FallbackImage = exports.Disabled = exports.Default = exports.CustomSizeAndRadius = exports.Avatar = void 0;
|
12
12
|
|
13
13
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
14
14
|
|
15
15
|
var _react = _interopRequireDefault(require("react"));
|
16
16
|
|
17
|
+
var _isChromatic = _interopRequireDefault(require("chromatic/isChromatic"));
|
18
|
+
|
17
19
|
var _ = _interopRequireDefault(require("."));
|
18
20
|
|
21
|
+
var _imageConstants = require("./imageConstants");
|
22
|
+
|
19
23
|
var _htmlElements = require("../../utils/devUtils/constants/htmlElements");
|
20
24
|
|
21
25
|
var _react2 = require("@emotion/react");
|
@@ -41,7 +45,7 @@ var _default = {
|
|
41
45
|
control: {
|
42
46
|
type: 'none'
|
43
47
|
},
|
44
|
-
defaultValue:
|
48
|
+
defaultValue: _imageConstants.pingImg
|
45
49
|
}
|
46
50
|
}
|
47
51
|
};
|
@@ -56,7 +60,7 @@ exports.Default = Default;
|
|
56
60
|
|
57
61
|
var Avatar = function Avatar() {
|
58
62
|
return (0, _react2.jsx)(_["default"], {
|
59
|
-
src:
|
63
|
+
src: _imageConstants.pingImg,
|
60
64
|
variant: "images.avatar"
|
61
65
|
});
|
62
66
|
};
|
@@ -65,7 +69,7 @@ exports.Avatar = Avatar;
|
|
65
69
|
|
66
70
|
var CustomSizeAndRadius = function CustomSizeAndRadius() {
|
67
71
|
return (0, _react2.jsx)(_["default"], {
|
68
|
-
src:
|
72
|
+
src: _imageConstants.chiefIdentityChampions,
|
69
73
|
sx: {
|
70
74
|
width: '70px',
|
71
75
|
height: '70px',
|
@@ -79,9 +83,51 @@ exports.CustomSizeAndRadius = CustomSizeAndRadius;
|
|
79
83
|
|
80
84
|
var Disabled = function Disabled() {
|
81
85
|
return (0, _react2.jsx)(_["default"], {
|
82
|
-
src:
|
86
|
+
src: _imageConstants.pingImg,
|
83
87
|
isDisabled: true
|
84
88
|
});
|
85
89
|
};
|
86
90
|
|
87
|
-
exports.Disabled = Disabled;
|
91
|
+
exports.Disabled = Disabled;
|
92
|
+
|
93
|
+
var FallbackImage = function FallbackImage() {
|
94
|
+
return (0, _react2.jsx)(_["default"], {
|
95
|
+
fallbackImage: _imageConstants.pingImg,
|
96
|
+
src: "https://deelay.me/7000/https://picsum.photos/150/150",
|
97
|
+
sx: {
|
98
|
+
width: '150px',
|
99
|
+
height: '150px'
|
100
|
+
}
|
101
|
+
});
|
102
|
+
};
|
103
|
+
|
104
|
+
exports.FallbackImage = FallbackImage;
|
105
|
+
|
106
|
+
var WithSkeletonLoadSuccess = function WithSkeletonLoadSuccess(_ref2) {
|
107
|
+
var useLocalSrc = _ref2.useLocalSrc;
|
108
|
+
var imageSrc = useLocalSrc ? _imageConstants.pingImg : 'https://deelay.me/3000/https://picsum.photos/150/150';
|
109
|
+
return (0, _react2.jsx)(_["default"], {
|
110
|
+
src: imageSrc,
|
111
|
+
sx: {
|
112
|
+
width: '150px',
|
113
|
+
height: '150px'
|
114
|
+
}
|
115
|
+
});
|
116
|
+
};
|
117
|
+
|
118
|
+
exports.WithSkeletonLoadSuccess = WithSkeletonLoadSuccess;
|
119
|
+
WithSkeletonLoadSuccess.args = {
|
120
|
+
useLocalSrc: (0, _isChromatic["default"])()
|
121
|
+
};
|
122
|
+
|
123
|
+
var WithSkeletonLoadTimeout = function WithSkeletonLoadTimeout() {
|
124
|
+
return (0, _react2.jsx)(_["default"], {
|
125
|
+
src: "https://deelay.me/7000/https://picsum.photos/150/150",
|
126
|
+
sx: {
|
127
|
+
width: '150px',
|
128
|
+
height: '150px'
|
129
|
+
}
|
130
|
+
});
|
131
|
+
};
|
132
|
+
|
133
|
+
exports.WithSkeletonLoadTimeout = WithSkeletonLoadTimeout;
|
@@ -2,25 +2,82 @@
|
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
4
|
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
|
7
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
8
|
+
|
9
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
10
|
+
|
11
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
12
|
+
|
13
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
14
|
+
|
15
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
16
|
+
|
17
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
18
|
+
|
19
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
20
|
+
|
21
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
22
|
+
|
23
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
24
|
+
|
5
25
|
var _react = _interopRequireDefault(require("react"));
|
6
26
|
|
27
|
+
var _react2 = require("@testing-library/react");
|
28
|
+
|
7
29
|
var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
|
8
30
|
|
9
31
|
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
10
32
|
|
11
33
|
var _ = _interopRequireDefault(require("."));
|
12
34
|
|
13
|
-
var
|
35
|
+
var _react3 = require("@emotion/react");
|
36
|
+
|
37
|
+
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; }
|
38
|
+
|
39
|
+
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) { (0, _defineProperty2["default"])(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; }
|
40
|
+
|
41
|
+
var testSrc = 'test-src';
|
42
|
+
var testFallbackSrc = 'test-fallback-src';
|
43
|
+
var skeletonImageId = 'skeleton-image';
|
44
|
+
var defaultProps = {
|
45
|
+
src: testSrc,
|
46
|
+
fallbackImage: testFallbackSrc
|
47
|
+
};
|
14
48
|
|
15
49
|
var getComponent = function getComponent() {
|
16
50
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
17
|
-
return (0, _testWrapper.render)((0,
|
51
|
+
return (0, _testWrapper.render)((0, _react3.jsx)(_["default"], (0, _extends2["default"])({}, defaultProps, props)));
|
18
52
|
}; // Need to be added to each test file to test accessibility using axe.
|
19
53
|
|
20
54
|
|
21
55
|
(0, _testAxe["default"])(getComponent);
|
56
|
+
var fallbackImageObj = null;
|
57
|
+
jest.mock('../../hooks/useFallbackImage', function () {
|
58
|
+
return function (props) {
|
59
|
+
fallbackImageObj = _objectSpread({}, props);
|
60
|
+
return [];
|
61
|
+
};
|
62
|
+
});
|
22
63
|
test('an image is rendered', function () {
|
23
64
|
getComponent();
|
65
|
+
(0, _react2.act)(function () {
|
66
|
+
fallbackImageObj.onImageLoad();
|
67
|
+
});
|
68
|
+
|
69
|
+
var img = _testWrapper.screen.getByRole('img');
|
70
|
+
|
71
|
+
expect(img).toBeInstanceOf(HTMLImageElement);
|
72
|
+
expect(img).toBeInTheDocument();
|
73
|
+
});
|
74
|
+
test('an image is rendered with no fallback', function () {
|
75
|
+
getComponent({
|
76
|
+
fallbackImage: null
|
77
|
+
});
|
78
|
+
(0, _react2.act)(function () {
|
79
|
+
fallbackImageObj.onImageLoad();
|
80
|
+
});
|
24
81
|
|
25
82
|
var img = _testWrapper.screen.getByRole('img');
|
26
83
|
|
@@ -31,8 +88,87 @@ test('image shows disabled status', function () {
|
|
31
88
|
getComponent({
|
32
89
|
isDisabled: true
|
33
90
|
});
|
91
|
+
(0, _react2.act)(function () {
|
92
|
+
fallbackImageObj.onImageLoad();
|
93
|
+
});
|
34
94
|
|
35
95
|
var img = _testWrapper.screen.getByRole('img');
|
36
96
|
|
37
97
|
expect(img).toHaveClass('is-disabled');
|
98
|
+
});
|
99
|
+
describe('test Image component with useFallbackImage hook', function () {
|
100
|
+
test('image component will use src if loaded correctly', function () {
|
101
|
+
getComponent();
|
102
|
+
(0, _react2.act)(function () {
|
103
|
+
fallbackImageObj.onImageLoad();
|
104
|
+
});
|
105
|
+
expect(_testWrapper.screen.getByRole('img')).toHaveAttribute('src', testSrc);
|
106
|
+
});
|
107
|
+
test('image component will use fallbackImg if src loaded with error', function () {
|
108
|
+
getComponent();
|
109
|
+
(0, _react2.act)(function () {
|
110
|
+
fallbackImageObj.onImageError();
|
111
|
+
});
|
112
|
+
|
113
|
+
var img = _testWrapper.screen.getByRole('img');
|
114
|
+
|
115
|
+
expect(img).toHaveAttribute('src', testFallbackSrc);
|
116
|
+
});
|
117
|
+
test('image component will use fallbackImg if src timed out', function () {
|
118
|
+
getComponent();
|
119
|
+
(0, _react2.act)(function () {
|
120
|
+
fallbackImageObj.onFallbackTimeout();
|
121
|
+
});
|
122
|
+
|
123
|
+
var img = _testWrapper.screen.getByRole('img');
|
124
|
+
|
125
|
+
expect(img).toHaveAttribute('src', testFallbackSrc);
|
126
|
+
});
|
127
|
+
test('if image loads after timeout src still be the fallback', function () {
|
128
|
+
getComponent();
|
129
|
+
(0, _react2.act)(function () {
|
130
|
+
fallbackImageObj.onFallbackTimeout();
|
131
|
+
fallbackImageObj.onImageLoad();
|
132
|
+
});
|
133
|
+
|
134
|
+
var img = _testWrapper.screen.getByRole('img');
|
135
|
+
|
136
|
+
expect(img).toHaveAttribute('src', testFallbackSrc);
|
137
|
+
});
|
138
|
+
test('if image loads before timeout src still be the the origin one', function () {
|
139
|
+
getComponent();
|
140
|
+
(0, _react2.act)(function () {
|
141
|
+
fallbackImageObj.onImageLoad();
|
142
|
+
fallbackImageObj.onFallbackTimeout();
|
143
|
+
});
|
144
|
+
expect(_testWrapper.screen.getByRole('img')).toHaveAttribute('src', testSrc);
|
145
|
+
});
|
146
|
+
test('the skeleton loading will appear if no fallback image is given', function () {
|
147
|
+
getComponent({
|
148
|
+
fallbackImage: null
|
149
|
+
});
|
150
|
+
expect(_testWrapper.screen.getByTestId(skeletonImageId)).toBeInTheDocument();
|
151
|
+
(0, _react2.act)(function () {
|
152
|
+
fallbackImageObj.onImageLoad();
|
153
|
+
});
|
154
|
+
expect(_testWrapper.screen.getByRole('img')).toHaveAttribute('src', testSrc);
|
155
|
+
});
|
156
|
+
test('the skeleton will be shown instead of img if no fallback image is given and image load failed', function () {
|
157
|
+
getComponent({
|
158
|
+
fallbackImage: null
|
159
|
+
});
|
160
|
+
(0, _react2.act)(function () {
|
161
|
+
fallbackImageObj.onImageError();
|
162
|
+
});
|
163
|
+
expect(_testWrapper.screen.getByTestId(skeletonImageId)).toBeInTheDocument();
|
164
|
+
});
|
165
|
+
test('the skeleton will be shown instead of img if no fallback image is given and image load timed out', function () {
|
166
|
+
getComponent({
|
167
|
+
fallbackImage: null
|
168
|
+
});
|
169
|
+
(0, _react2.act)(function () {
|
170
|
+
fallbackImageObj.onFallbackTimeout();
|
171
|
+
});
|
172
|
+
expect(_testWrapper.screen.getByTestId(skeletonImageId)).toBeInTheDocument();
|
173
|
+
});
|
38
174
|
});
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
4
|
+
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
|
9
|
+
exports.pingImg = exports.chiefIdentityChampions = void 0;
|
10
|
+
var pingImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAkFBMVEW4Iy/////78/O1Ahu3GSfIam+0ABfqx8mzAA+3HiuyAAD25ufkt7rARE22EiK1Ch68LjnWj5TdqqzOd3yzAA357e79+fm9OEHx3d7mvcDszM7FWWDw19nMcHb14+SzABPUi4/HX2bBRk/Zmp7QfYLJZmzeq63CT1fYlpq+PUbdoqbEVFy8Mj3ATFPRg4flury38LwjAAANQklEQVR4nO2d6XaqOhiGwUQgSBNtgTpQ0ao4tfb+726TMIc5WrV75f2zz1KweUhIvik5iiIlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUldSMhDDQCH92K3xPyvw4zPfgw8KNb8kuCiq4yuVvj0W35FeGFqyYK/Ee3plmoTo03HdWcDuBejRUReqnS19dYwZqhAVwNqo3yhOqx8XE8WECt08AZ6cHlbGtlSnwpXjrTHtH0jgKDWsRY8y0GHKM95a555vm0nTCcLl8Jyd+DIH/F+YmXxS6EoQ5+rhvhgv/68sSd2JFQnX5lEHDIfzv5DwhVdZ2OVHTmv9v+/VFKtUsQy+/hyxMvFz0I1UXSU3ZxOVQHz7zk9yF0lbir8Kb4xStp/iMPVR9C1bOjmxByC583m3gPVi9CdRvPmXib//TtiWfSvoQDM77NOGUfTp7ZZisRHiaxTpbX1ImKsY0HqrN7bkCeUCE4EgH2OCgTTlN3F6PVfOrNtuCJl0ImjnCcmzOQf3ZLiJmjhLDm+0/P10gY9tNnifCZ7bNqNRIqYMUT6g9+6/oH95oJFdvhCB279BPVqyH+DSsA2dak7++2EOIJ34n5P4AgBr6pfPKICNvKJQD5C4nmG75PYIttEP5ieCW9VCO4dDEG88ywuhEhGldPNYxN+1pMAm+gzgpmKQT+94YGAXbxgELEf387zb2p5wXbsV8/zBA2lPAXdc9bep4eTM6KkZ/JoP1BGzvrGb1sIVQ0fphG7YbrleUlt1opIcK+PbSc/CuLfOW0zN0/39e0EBrjDb8GL62drYV9iRAG5i7+dt3vVWwj9OfcHx3S3weFZSQlRO+r/OXUAMLjGT8KZqiiicg4838pln5YvBz3WyttqNMvPttGCKxKwsJdKSEsmKuh14js4ieRBscSIvmq4avSqZez1kZIeMOmiZBzjbeAlDow0js/ZV+qr6tRr/hsK+GJ+/UmQi7MePnkX+JETvFdtPmB0iLPVLqrjZAP/qp71EBYHNOVtnukwkCza3q6XtsellUrIf8iHZsIS8+jVrlVzeeHSbvmPd7E3n1IyndlhLAUhatTZt/CXW/AWZ/ZtO97GPnAdYRlA6FOXtJIhHv54CrNWJYtxysIDW4Wj1pWR6jAsr9Vo6SVZNN+bV7LCezn3rRZbV/cHwgaR2nZBKpV8pc0/gv9bWyaaFdyv8+Ly2T1odg1CT9RQlvn/s4HbCQs+SKRnGWpb/fRX+KMBNX5tpnBDQHkRs/AxhgLONzNhLiUoYjmwFpCv2KF8LbANswzxx7b5ZxV6GQMyOQQT2L+WLOP/8U/+rlfcVcj4fIcVWvw8YJhhFK0cLOwOkXExe/c2xDCJI0fOmrmsDS24hRMd8KNnaYCil9FhOi7+AALsyR4Lf7Wh1BQiCP8TjL5n+tLwGUn6GM0q+7KzzTce7vOgh6chRsRwrfiAyxMk3ye0hJKj/SLCG9IL0L3JddiznaICLkMyFfhJeFzXFOhspZehINkpu5IuMxbyFx3RYScQcENQ7P4lgx6rfRChGmCoiPhKO9CcJnjmLAwdF1uLeezeH1cCiFC3a6+6xrCPn3464QDWHPX7QjHje+h+9uEx18gxMWQ81uhE+G62ICKWO1NCfe47q4rCDmI4nroc56x96tz6SA/8d+OkHe3zrm/Al+4NoiZbR0J5xDW33UFoWIvC58OlBSRvPNN6xko7UV4sVHDXdcQ8h62uzUBTV/6Wikp1DNO2ofwFfM+5+0Iy1EBxzpsJyfeawu1EUvstRIuDwpfmnhLQkX7aWlAIlcwr8cRuoNEjjOd/2yGuNKnviEh6hr4EK344AhPJohl274GygmumxOWVr0a9U051RF2rG66JaECPjoAekKr/ZMQKmTROt15mnDZ1TMQKhC3JC4CWxjwOQgVBMav9XFIZ33Njo7nIFSgYXyUgybRj1yMq4p2noIQGYuKFZ51X7Cwr6zgeQZCXE4AW1ZwOq3WY/v6oqsnICSlsLOFNQBIRbnJ3yQs7W1wvv1bkFW39RGEfDLHa6i4EdHDCSFv0ZQSfFfq4YSlcpaxAVIRfP27+HDCUkmSqlupTpvLYnxlEevjCfl9cCU51tq8gvHxhA01KdkPDcU3Gz+cENRYM5x04RXk4YS4YzWNIzrHPpywcwmO07dE4VkIy1tu67QkQoiPJ0R8aLtW+i3yFo+wvPG+a+7kQ8SRegJCBeJNjffLyRFJ5D8DIa3tf98G81Fr5PRNYOV/CkKF7VegOxCUY1IMsh5erFLPiuTXnoUwJU3reSAG9p43eARexFsQ/lyTmWk8bASaXAFfzXNpbGtx7AfdCIk3yuTkMpfEyn0xmueTKXDt5G+KkoH4M3feSGnvTSiz2IuH/p2IdsO8vjsuqr6RU/6pkPwXxWwRzH9lVJREuRXmNRfjECmLggXdecty0bGYV+XPzALho7fO9RVCheb/VHWQsfzThPv2IVisi/prhFypW+UoLR4RpD/z6Q0V4kqgnYqaJ66iseNcX5BtVgRBMOgZ/am8ARHQ/Mi5PixUCMfyi9HUVf/Vgg6CUu0t3ljWrg8inlTcgMaWZY2bbuPD3ctSmtDkyqL2/Sd7ap2UDAV/2XPTtjavuAG9qy3xXXZF4U0keS8XEX7LlyvgIVYTTvsS6kKE/BgMESZjG7BTD4hmvx94x3EmMNE8lpBwtepU09lpMplsgnlFUrjiRW3VYwmRUqZokCcSNX0sYWnDQbO+RULfDyZUtGUrVyqxIyg7EELNBnZa24awRtg/hu+nlxQIEYwimwVCRKqfGEKd94IJjVGOEBHDNA2C8oTIfNOdwcg6RtMYGl/00LDA5LQczOMqCWzSZetihgIUcLGi+yYMk5Zpg/DDsGVACXKlhaGVYaZPTOkWhVJHV0SEE0LyRbfJLE/QzAjxS9KAFbMawYxWCfqxvz6gNb34kDUjtBupuxP6skbWNwODzpnLdC2z6Yfv2aDoNFA9sXhwgVBLrET3PSXELObusNa+0dHJ9rQes9Mywvk7f3ZG2HmU8CUkzLrmRNhDSAYsi+NnvAoCHXY6n4xrMjPxxgAKGAyHB091RzEhq29dvpvmmBoX0TZ42lP0b06Z9zqwFfgx18NHMNP1+QYoCSGxdPqpHn76gtiJrsnBfKwsOF+zjexdy0idv4h7TSkhnRfcbx9CbLOtx4yQJmgdalMj8xQHluwosLNRbAPR9G14M9TMkNnUNI3eExMqhH0KfY0W3dFy7sTBNeijKYZLoPbWkL2Y7YU7ME9IN/zG5waCXUzIUgpRKB1hNTLR2S7R6Zi2FpmD+EnQuTRxfRLC6NN4aNJ+G0RzIVvlSzXb0D4evIqIsPPzRrSrs9yUEH2GfRQ3koHRltMJwo2fPO1OahZSn1uPfQAaZulGSH8+HuWs+KLCnUfYJ8ft5mfuTZ3RyGHnt+wU7eqiqISQPuRkPk8JKUESZqYXjOyIMMmQpC5FKyGzsaPJixVf1GwsoMfeaL5hh6o+g+cKQmOanSSbEbrZ06beqhv3YZI+SBf6dkIQJFts2TAX2sEkppRQzdkfMSELhZ3MWOPoaEhBQlrNzTbfsWn1ngGlmJDNpKnZlRDyDipdpgUJFcONxibbyyWSQ7qSkMYT0lNIf4WQLus0K8IyG31Ps7oF4bAT4VGckE6hUztKlAja0NcTpqfoJoTUorHec6kTRXimiXaOYMRMtrse3Je8h9+5I2bTuVQLG/WqFdNfooRsQd1CZrLduvywEyE1ND55QrqE8DFYYUIa27UANdnYAZpVB379ipLVgm4qTs4dZwYIbTldnPkz84UJqd03tanxR61uogzvxJgQUvMkgWHvH205dZW4Q6vECdkwZZucQqsbbNT5cneX1zEhZMtUnGcGw2Q2MMJvL8kwheQ6QupHnk9sw3IIejnsdP5Qs18lZPbLFJDQezJZXTJrOeV23xkZsreW1kSYuLS1hNSaOUyZHUiC0+ZFXdwlk5R6Tyyu50wW61WUl41mdBrfdy+hMWy86FFAtpbwCKO5OCME0S0pozZQp5HVTYJLoJ9fvHsYb5mPnz8eyE0cDaSwwPpyyr6kU1ElIXWzdGKOxwVCGrvwsKkk2ZmoUIOa72gfHD7Or3c5jp+aGPHG8a80S0B34cY+BVLSVLuzIPGDSAkT74nNvqoTzcrpuhPZRE56eXS8AJvP8G6P3yZ3SXfCUxDEEQUEo0zPYGse3EFy6Buy17PRYDCafcShw00QnOOBhy9BECXVQBRvoyzEeg3iKYRE+7EviVfGjtWKOi70/NCdLBucJbQQgMPV6qzhcNrMndcLgU9IVjCfu4H+d9I/+Ht1iTbTk+wCjD+TT6nYSR73rvcoKvSxBeOudEWvuhXld7rTSPP8yf/vUNdJs+7rGt5dyHYzB+Z/FKLZjb934nl3QeNH+GyLPyHIjqr+/I/fQhrFcPf/8RgNl8npK/yPe5AKiGYApaSkpKSkpKSkpP6K/gG8zOuuFcJIQAAAAABJRU5ErkJggg==';
|
11
|
+
exports.pingImg = pingImg;
|
12
|
+
var chiefIdentityChampions = 'https://images.pingidentity.com/image/upload/f_auto,q_auto,w_auto,c_scale/ping_dam/content/dam/ping-6-2-assets/images/company/our-company/chief-identity-champions.png';
|
13
|
+
exports.chiefIdentityChampions = chiefIdentityChampions;
|
@@ -20,17 +20,22 @@ var _testWrapper = require("../../utils/testUtils/testWrapper");
|
|
20
20
|
|
21
21
|
var _ImageUploadField = _interopRequireDefault(require("./ImageUploadField"));
|
22
22
|
|
23
|
-
var _index = require("../../index");
|
24
|
-
|
25
23
|
var _react3 = require("@emotion/react");
|
26
24
|
|
25
|
+
var imageUploadNoImagePreview = 'image-upload-no-image-preview';
|
26
|
+
jest.mock('../Image', function () {
|
27
|
+
return function (props) {
|
28
|
+
return (0, _react3.jsx)("img", (0, _extends2["default"])({
|
29
|
+
alt: "mock"
|
30
|
+
}, props));
|
31
|
+
};
|
32
|
+
});
|
27
33
|
var testLabel = 'test-label';
|
28
34
|
var testButtonId = 'image-preview-button';
|
29
35
|
var testHelperText = 'test-helper-text';
|
30
36
|
var testImageURL = 'test-image-url';
|
31
37
|
var testImageURL2 = 'test-image-url2';
|
32
38
|
var imageUploadImagePreview = 'image-upload-image-preview';
|
33
|
-
var imageUploadNoImagePreview = 'image-upload-no-image-preview';
|
34
39
|
var file = new File(['(⌐□_□)'], 'chucknorris.png', {
|
35
40
|
type: 'image/png'
|
36
41
|
});
|
@@ -224,10 +229,16 @@ test('should change image if the corresponding menu option clicked', /*#__PURE__
|
|
224
229
|
}
|
225
230
|
});
|
226
231
|
|
227
|
-
expect
|
232
|
+
_context4.t0 = expect;
|
233
|
+
_context4.next = 14;
|
234
|
+
return _testWrapper.screen.findByTestId(imageUploadImagePreview);
|
235
|
+
|
236
|
+
case 14:
|
237
|
+
_context4.t1 = _context4.sent;
|
238
|
+
(0, _context4.t0)(_context4.t1).toBeInTheDocument();
|
228
239
|
expect(imagePreview).toHaveAttribute('src');
|
229
240
|
|
230
|
-
case
|
241
|
+
case 17:
|
231
242
|
case "end":
|
232
243
|
return _context4.stop();
|
233
244
|
}
|
@@ -273,14 +284,20 @@ test('should call onRemove cb (when provided) when a file is uploaded', /*#__PUR
|
|
273
284
|
|
274
285
|
_userEvent["default"].click(_testWrapper.screen.getByTestId(testButtonId));
|
275
286
|
|
276
|
-
expect
|
287
|
+
_context5.t0 = expect;
|
288
|
+
_context5.next = 10;
|
289
|
+
return _testWrapper.screen.findByTestId(imageUploadImagePreview);
|
290
|
+
|
291
|
+
case 10:
|
292
|
+
_context5.t1 = _context5.sent;
|
293
|
+
(0, _context5.t0)(_context5.t1).toBeInTheDocument();
|
277
294
|
|
278
295
|
_userEvent["default"].click(_testWrapper.screen.getByText('Remove Image'));
|
279
296
|
|
280
297
|
expect(imagePreview).not.toBeInTheDocument();
|
281
298
|
expect(testOnRemove).toHaveBeenCalledTimes(1);
|
282
299
|
|
283
|
-
case
|
300
|
+
case 15:
|
284
301
|
case "end":
|
285
302
|
return _context5.stop();
|
286
303
|
}
|
@@ -429,7 +446,9 @@ test('should show the menu if label clicked when preview image exists', /*#__PUR
|
|
429
446
|
})));
|
430
447
|
test('should render node element if passed as default image', function () {
|
431
448
|
getComponent({
|
432
|
-
defaultPreviewImage: (0, _react3.jsx)(
|
449
|
+
defaultPreviewImage: (0, _react3.jsx)("img", {
|
450
|
+
alt: "mock"
|
451
|
+
})
|
433
452
|
});
|
434
453
|
|
435
454
|
var img = _testWrapper.screen.getByRole('img');
|
@@ -67,6 +67,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
67
67
|
var isDisabled = state.disabledKeys.has(item.key);
|
68
68
|
var rowRef = (0, _react.useRef)();
|
69
69
|
var cellRef = (0, _react.useRef)();
|
70
|
+
var isSelectable = state.selectionManager.selectionMode !== 'none';
|
70
71
|
|
71
72
|
var _useFocusRing = (0, _focus.useFocusRing)({
|
72
73
|
within: true
|
@@ -106,7 +107,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
106
107
|
var mergedProps = (0, _utils.mergeProps)(gridCellProps, hoverProps, focusWithinProps, focusProps, selectableItemProps);
|
107
108
|
|
108
109
|
var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
|
109
|
-
isHovered: isHovered,
|
110
|
+
isHovered: isSelectable && isHovered,
|
110
111
|
isSelected: isSelected,
|
111
112
|
isFocused: isDisabled ? false : isFocusVisible,
|
112
113
|
hasSeparator: hasSeparator
|
@@ -105,7 +105,7 @@ var MultiselectFilter = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
|
|
105
105
|
}, (0, _react2.jsx)(_index.ListView, {
|
106
106
|
items: items,
|
107
107
|
onSelectionChange: onSelectionChange,
|
108
|
-
selectionMode: "
|
108
|
+
selectionMode: "none",
|
109
109
|
style: {
|
110
110
|
width: '100%'
|
111
111
|
},
|
@@ -30,22 +30,32 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
30
30
|
|
31
31
|
var MultiselectFilterItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
32
32
|
var text = props.text,
|
33
|
-
icon = props.icon
|
33
|
+
icon = props.icon,
|
34
|
+
isDefaultSelected = props.isDefaultSelected,
|
35
|
+
onPress = props.onPress;
|
36
|
+
var iconElement = icon && (0, _react2.jsx)(_index.Icon, {
|
37
|
+
"data-testid": "multiselect-filter-data-icon",
|
38
|
+
icon: icon,
|
39
|
+
color: isDefaultSelected ? 'neutral.10' : 'active',
|
40
|
+
size: 13
|
41
|
+
});
|
34
42
|
return (0, _react2.jsx)(_index.Box, {
|
35
43
|
"data-testid": "multiselect-filter-item",
|
36
44
|
isRow: true,
|
37
|
-
justifyContent: "space-between",
|
38
45
|
ref: ref
|
39
46
|
}, (0, _react2.jsx)(_index.Text, {
|
40
47
|
variant: "multiselectFilterItem"
|
41
|
-
}, text),
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
48
|
+
}, text), iconElement && (isDefaultSelected ? iconElement : (0, _react2.jsx)(_index.IconButton, {
|
49
|
+
sx: {
|
50
|
+
width: 13,
|
51
|
+
height: 13,
|
52
|
+
alignSelf: 'auto',
|
53
|
+
'& path': {
|
54
|
+
fill: 'inherit'
|
55
|
+
}
|
56
|
+
},
|
57
|
+
onPress: onPress
|
58
|
+
}, iconElement)));
|
49
59
|
});
|
50
60
|
MultiselectFilterItem.propTypes = {
|
51
61
|
/**
|
@@ -56,7 +66,18 @@ MultiselectFilterItem.propTypes = {
|
|
56
66
|
/**
|
57
67
|
* List icon.
|
58
68
|
*/
|
59
|
-
icon: _propTypes["default"].shape({})
|
69
|
+
icon: _propTypes["default"].shape({}),
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Whether the element is default selected
|
73
|
+
* and has to use Icon element instead of IconButton
|
74
|
+
*/
|
75
|
+
isDefaultSelected: _propTypes["default"].bool,
|
76
|
+
|
77
|
+
/**
|
78
|
+
* Handler that is called at the press on icon button
|
79
|
+
*/
|
80
|
+
onPress: _propTypes["default"].func
|
60
81
|
};
|
61
82
|
MultiselectFilterItem.displayName = 'MultiselectFilterItem';
|
62
83
|
var _default = MultiselectFilterItem;
|
@@ -42,7 +42,7 @@ test('default multiselectFilter', function () {
|
|
42
42
|
expect(icon).not.toBeInTheDocument();
|
43
43
|
expect(multiselectFilterItem).toBeInTheDocument();
|
44
44
|
});
|
45
|
-
test('icon displays when icon prop is present', function () {
|
45
|
+
test('icon button displays when icon prop is present', function () {
|
46
46
|
getComponent({
|
47
47
|
icon: _FilterIcon["default"]
|
48
48
|
});
|
@@ -50,4 +50,16 @@ test('icon displays when icon prop is present', function () {
|
|
50
50
|
var icon = _testWrapper.screen.getByTestId(iconId);
|
51
51
|
|
52
52
|
expect(icon).toBeInTheDocument();
|
53
|
+
expect(icon.parentElement).toBeInstanceOf(HTMLButtonElement);
|
54
|
+
});
|
55
|
+
test('icon displays when icon prop is present and default selected', function () {
|
56
|
+
getComponent({
|
57
|
+
icon: _FilterIcon["default"],
|
58
|
+
isDefaultSelected: true
|
59
|
+
});
|
60
|
+
|
61
|
+
var icon = _testWrapper.screen.getByTestId(iconId);
|
62
|
+
|
63
|
+
expect(icon).toBeInTheDocument();
|
64
|
+
expect(icon.parentElement).not.toBeInstanceOf(HTMLButtonElement);
|
53
65
|
});
|
@@ -43,17 +43,25 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
43
43
|
*
|
44
44
|
*/
|
45
45
|
var NavBar = function NavBar(props) {
|
46
|
-
var
|
46
|
+
var defaultSelectedKey = props.defaultSelectedKey,
|
47
|
+
defaultExpandedKeys = props.defaultExpandedKeys;
|
47
48
|
|
48
|
-
var _useState = (0, _react.useState)(
|
49
|
+
var _useState = (0, _react.useState)(defaultSelectedKey),
|
49
50
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
50
|
-
|
51
|
-
|
51
|
+
selectedKey = _useState2[0],
|
52
|
+
setSelectedKey = _useState2[1];
|
53
|
+
|
54
|
+
var _useState3 = (0, _react.useState)(defaultExpandedKeys),
|
55
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
56
|
+
expandedKeys = _useState4[0],
|
57
|
+
setExpandedKeys = _useState4[1];
|
52
58
|
|
53
59
|
return (0, _react2.jsx)(_NavBarContext.NavBarContext.Provider, {
|
54
60
|
value: {
|
55
|
-
|
56
|
-
|
61
|
+
selectedKey: selectedKey,
|
62
|
+
setSelectedKey: setSelectedKey,
|
63
|
+
expandedKeys: expandedKeys,
|
64
|
+
setExpandedKeys: setExpandedKeys
|
57
65
|
}
|
58
66
|
}, (0, _react2.jsx)(_Box["default"], {
|
59
67
|
variant: "navBar.container",
|
@@ -63,10 +71,14 @@ var NavBar = function NavBar(props) {
|
|
63
71
|
};
|
64
72
|
|
65
73
|
NavBar.propTypes = {
|
66
|
-
|
74
|
+
/** The initial selected key in the collection (uncontrolled). */
|
75
|
+
defaultSelectedKey: _isIterable.isIterableProp,
|
76
|
+
|
77
|
+
/** The initial expanded keys in the collection (uncontrolled). */
|
78
|
+
defaultExpandedKeys: _isIterable.isIterableProp
|
67
79
|
};
|
68
80
|
NavBar.defaultProps = {
|
69
|
-
|
81
|
+
defaultSelectedKey: []
|
70
82
|
};
|
71
83
|
var _default = NavBar;
|
72
84
|
exports["default"] = _default;
|
@@ -253,7 +253,7 @@ var thirdData = [{
|
|
253
253
|
|
254
254
|
var Default = function Default() {
|
255
255
|
return (0, _react2.jsx)(_index.NavBar, {
|
256
|
-
|
256
|
+
defaultSelectedKey: "Dashboard Link Group"
|
257
257
|
}, (0, _react2.jsx)(_index.Box, {
|
258
258
|
padding: "md"
|
259
259
|
}, (0, _react2.jsx)(_index.Link, {
|
@@ -262,7 +262,8 @@ var Default = function Default() {
|
|
262
262
|
"aria-label": "home link"
|
263
263
|
}, logo)), (0, _react2.jsx)(_index.Separator, {
|
264
264
|
marginTop: "lg",
|
265
|
-
marginBottom: "sm"
|
265
|
+
marginBottom: "sm",
|
266
|
+
backgroundColor: "neutral.60"
|
266
267
|
}), (0, _react2.jsx)(_index.Box, {
|
267
268
|
variant: "navBar.sectionContainer",
|
268
269
|
paddingBottom: "xl"
|
@@ -76,7 +76,7 @@ var NavBarItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
76
76
|
isFocusVisible = _useFocusRing2.isFocusVisible;
|
77
77
|
|
78
78
|
var state = (0, _NavBarContext.useNavBarContext)();
|
79
|
-
var isSelected = (0, _includes["default"])(_context = state.
|
79
|
+
var isSelected = (0, _includes["default"])(_context = state.selectedKey).call(_context, key);
|
80
80
|
|
81
81
|
var _useNavBarPress = (0, _hooks.useNavBarPress)({
|
82
82
|
key: key,
|
@@ -59,7 +59,7 @@ var NavBarItemButton = function NavBarItemButton(props) {
|
|
59
59
|
sx = props.sx,
|
60
60
|
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
61
61
|
var state = (0, _NavBarContext.useNavBarContext)();
|
62
|
-
var isSelected = (0, _includes["default"])(_context = state.
|
62
|
+
var isSelected = (0, _includes["default"])(_context = state.selectedKey).call(_context, key);
|
63
63
|
|
64
64
|
var _useNavBarPress = (0, _hooks.useNavBarPress)({
|
65
65
|
key: key,
|