@pingux/astro 1.2.0-alpha.0 → 1.2.0-alpha.12
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/Breadcrumbs/BreadcrumbItem.js +3 -0
- package/lib/cjs/components/Breadcrumbs/Breadcrumbs.js +24 -14
- package/lib/cjs/components/Breadcrumbs/Breadcrumbs.test.js +9 -0
- package/lib/cjs/components/Button/Button.js +5 -2
- package/lib/cjs/components/Button/Button.stories.js +71 -17
- package/lib/cjs/components/Button/Button.test.js +26 -0
- package/lib/cjs/components/CopyText/CopyButton.js +9 -2
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +338 -0
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +295 -0
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.test.js +287 -0
- package/lib/cjs/components/EnvironmentBreadcrumb/index.js +18 -0
- package/lib/cjs/components/HelpHint/HelpHint.js +24 -6
- package/lib/cjs/components/HelpHint/HelpHint.stories.js +57 -0
- package/lib/cjs/components/HelpHint/HelpHint.test.js +80 -0
- package/lib/cjs/components/Messages/Messages.reducer.js +2 -1
- package/lib/cjs/components/Messages/Messages.stories.js +10 -10
- package/lib/cjs/components/Messages/Messages.test.js +15 -1
- package/lib/cjs/components/Messages/index.js +21 -2
- package/lib/cjs/components/MultivaluesField/MultivaluesField.js +3 -1
- package/lib/cjs/components/NumberField/NumberField.js +3 -1
- package/lib/cjs/components/NumberField/NumberField.test.js +7 -0
- package/lib/cjs/components/OverlayPanel/OverlayPanel.js +2 -16
- package/lib/cjs/components/OverlayPanel/OverlayPanel.test.js +44 -0
- package/lib/cjs/components/SearchField/SearchField.stories.js +1 -15
- package/lib/cjs/components/TextAreaField/TextAreaField.js +1 -1
- package/lib/cjs/components/TextAreaField/TextAreaField.stories.js +1 -54
- package/lib/cjs/components/TextField/TextField.stories.js +79 -2
- package/lib/cjs/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
- package/lib/cjs/index.js +10 -0
- package/lib/cjs/styles/variants/boxes.js +13 -0
- package/lib/cjs/styles/variants/buttons.js +101 -2
- package/lib/cjs/styles/variants/text.js +23 -0
- package/lib/components/Breadcrumbs/BreadcrumbItem.js +4 -1
- package/lib/components/Breadcrumbs/Breadcrumbs.js +24 -15
- package/lib/components/Breadcrumbs/Breadcrumbs.test.js +9 -0
- package/lib/components/Button/Button.js +6 -3
- package/lib/components/Button/Button.stories.js +53 -5
- package/lib/components/Button/Button.test.js +20 -0
- package/lib/components/CopyText/CopyButton.js +7 -2
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +296 -0
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +256 -0
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.test.js +246 -0
- package/lib/components/EnvironmentBreadcrumb/index.js +1 -0
- package/lib/components/HelpHint/HelpHint.js +25 -5
- package/lib/components/HelpHint/HelpHint.stories.js +34 -0
- package/lib/components/HelpHint/HelpHint.test.js +58 -0
- package/lib/components/Messages/Messages.reducer.js +1 -1
- package/lib/components/Messages/Messages.stories.js +1 -1
- package/lib/components/Messages/Messages.test.js +11 -1
- package/lib/components/Messages/index.js +2 -1
- package/lib/components/MultivaluesField/MultivaluesField.js +3 -1
- package/lib/components/NumberField/NumberField.js +2 -1
- package/lib/components/NumberField/NumberField.test.js +7 -0
- package/lib/components/OverlayPanel/OverlayPanel.js +3 -16
- package/lib/components/OverlayPanel/OverlayPanel.test.js +38 -0
- package/lib/components/SearchField/SearchField.stories.js +0 -11
- package/lib/components/TextAreaField/TextAreaField.js +1 -1
- package/lib/components/TextAreaField/TextAreaField.stories.js +0 -43
- package/lib/components/TextField/TextField.stories.js +72 -0
- package/lib/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
- package/lib/index.js +1 -0
- package/lib/styles/variants/boxes.js +13 -0
- package/lib/styles/variants/buttons.js +101 -2
- package/lib/styles/variants/text.js +23 -0
- package/package.json +2 -2
@@ -0,0 +1,295 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard");
|
4
|
+
|
5
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
6
|
+
|
7
|
+
var _Object$defineProperty2 = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
8
|
+
|
9
|
+
_Object$defineProperty2(exports, "__esModule", {
|
10
|
+
value: true
|
11
|
+
});
|
12
|
+
|
13
|
+
exports.OrgLevel = exports.WithSections = exports.Default = exports["default"] = void 0;
|
14
|
+
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/define-property"));
|
16
|
+
|
17
|
+
var _defineProperties = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/define-properties"));
|
18
|
+
|
19
|
+
var _getOwnPropertyDescriptors = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors"));
|
20
|
+
|
21
|
+
var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
|
22
|
+
|
23
|
+
var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor"));
|
24
|
+
|
25
|
+
var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
|
26
|
+
|
27
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
28
|
+
|
29
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
30
|
+
|
31
|
+
var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
|
32
|
+
|
33
|
+
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
34
|
+
|
35
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
36
|
+
|
37
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
38
|
+
|
39
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
40
|
+
|
41
|
+
var _defineProperty3 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
42
|
+
|
43
|
+
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
44
|
+
|
45
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
46
|
+
|
47
|
+
var _react = _interopRequireWildcard(require("react"));
|
48
|
+
|
49
|
+
var _EnvironmentBreadcrumb = _interopRequireDefault(require("./EnvironmentBreadcrumb"));
|
50
|
+
|
51
|
+
var _index = require("../../index");
|
52
|
+
|
53
|
+
var _react2 = require("@emotion/react");
|
54
|
+
|
55
|
+
function ownKeys(object, enumerableOnly) { var keys = (0, _keys["default"])(object); if (_getOwnPropertySymbols["default"]) { var symbols = (0, _getOwnPropertySymbols["default"])(object); if (enumerableOnly) symbols = (0, _filter["default"])(symbols).call(symbols, function (sym) { return (0, _getOwnPropertyDescriptor["default"])(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
56
|
+
|
57
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context6; (0, _forEach["default"])(_context6 = ownKeys(Object(source), true)).call(_context6, function (key) { (0, _defineProperty3["default"])(target, key, source[key]); }); } else if (_getOwnPropertyDescriptors["default"]) { (0, _defineProperties["default"])(target, (0, _getOwnPropertyDescriptors["default"])(source)); } else { var _context7; (0, _forEach["default"])(_context7 = ownKeys(Object(source))).call(_context7, function (key) { (0, _defineProperty2["default"])(target, key, (0, _getOwnPropertyDescriptor["default"])(source, key)); }); } } return target; }
|
58
|
+
|
59
|
+
var _default = {
|
60
|
+
title: 'EnvironmentBreadcrumb',
|
61
|
+
component: _EnvironmentBreadcrumb["default"]
|
62
|
+
};
|
63
|
+
exports["default"] = _default;
|
64
|
+
var defaultEnvironments = [{
|
65
|
+
name: 'Default'
|
66
|
+
}, {
|
67
|
+
name: 'Kangaroo'
|
68
|
+
}, {
|
69
|
+
name: 'Snake'
|
70
|
+
}, {
|
71
|
+
name: 'Snail'
|
72
|
+
}, {
|
73
|
+
name: 'Slug'
|
74
|
+
}, {
|
75
|
+
name: 'Crow'
|
76
|
+
}, {
|
77
|
+
name: 'Dog'
|
78
|
+
}, {
|
79
|
+
name: 'Crab',
|
80
|
+
isSandbox: true
|
81
|
+
}, {
|
82
|
+
name: 'Fish'
|
83
|
+
}, {
|
84
|
+
name: 'Turtle'
|
85
|
+
}, {
|
86
|
+
name: 'Mouse'
|
87
|
+
}, {
|
88
|
+
name: 'Banana'
|
89
|
+
}, {
|
90
|
+
name: 'Shark'
|
91
|
+
}, {
|
92
|
+
name: 'Gorilla'
|
93
|
+
}, {
|
94
|
+
name: 'Goat'
|
95
|
+
}];
|
96
|
+
var environmentsWithSections = [{
|
97
|
+
name: 'Recent',
|
98
|
+
options: [{
|
99
|
+
name: 'Default'
|
100
|
+
}, {
|
101
|
+
name: 'Consumer Banking Prod'
|
102
|
+
}, {
|
103
|
+
name: 'Custom 360 Test'
|
104
|
+
}]
|
105
|
+
}, {
|
106
|
+
name: 'All',
|
107
|
+
options: [{
|
108
|
+
name: 'Consumer Banking Prod'
|
109
|
+
}, {
|
110
|
+
name: 'Custom 360 Test'
|
111
|
+
}, {
|
112
|
+
name: 'Default'
|
113
|
+
}, {
|
114
|
+
name: 'Great New One',
|
115
|
+
isSandbox: true
|
116
|
+
}, {
|
117
|
+
name: 'Jeff’s Workforce'
|
118
|
+
}, {
|
119
|
+
name: 'Lindemuller Prod'
|
120
|
+
}, {
|
121
|
+
name: 'Mine'
|
122
|
+
}]
|
123
|
+
}];
|
124
|
+
|
125
|
+
var Default = function Default(args) {
|
126
|
+
var _useState = (0, _react.useState)({
|
127
|
+
name: 'Snail',
|
128
|
+
isSandbox: true
|
129
|
+
}),
|
130
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
131
|
+
selectedEnvironment = _useState2[0],
|
132
|
+
setSelectedEnvironment = _useState2[1];
|
133
|
+
|
134
|
+
var envNode = (0, _react2.jsx)(_index.Box, {
|
135
|
+
isRow: true
|
136
|
+
}, (0, _react2.jsx)(_index.Text, {
|
137
|
+
color: "inherit"
|
138
|
+
}, selectedEnvironment.name), selectedEnvironment.isSandbox ? (0, _react2.jsx)(_index.Chip, {
|
139
|
+
label: "SANDBOX",
|
140
|
+
variant: "boxes.environmentChip",
|
141
|
+
bg: "neutral.40"
|
142
|
+
}) : null);
|
143
|
+
|
144
|
+
var findEnvObj = function findEnvObj(envName) {
|
145
|
+
return (0, _find["default"])(defaultEnvironments).call(defaultEnvironments, function (_ref) {
|
146
|
+
var name = _ref.name;
|
147
|
+
return name === envName;
|
148
|
+
});
|
149
|
+
};
|
150
|
+
|
151
|
+
var handleSelectionChange = function handleSelectionChange(newEnvName) {
|
152
|
+
var envObj = findEnvObj(newEnvName);
|
153
|
+
setSelectedEnvironment(_objectSpread({}, envObj));
|
154
|
+
};
|
155
|
+
|
156
|
+
return (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_EnvironmentBreadcrumb["default"], (0, _extends2["default"])({}, args, {
|
157
|
+
items: defaultEnvironments,
|
158
|
+
name: "Globochem",
|
159
|
+
selectedItem: envNode,
|
160
|
+
onSelectionChange: handleSelectionChange
|
161
|
+
}), function (_ref2) {
|
162
|
+
var name = _ref2.name,
|
163
|
+
isSandbox = _ref2.isSandbox;
|
164
|
+
return (0, _react2.jsx)(_index.Item, {
|
165
|
+
key: name,
|
166
|
+
textValue: name
|
167
|
+
}, name, isSandbox ? (0, _react2.jsx)(_index.Chip, {
|
168
|
+
label: "SANDBOX",
|
169
|
+
variant: "boxes.environmentChip",
|
170
|
+
bg: "neutral.40"
|
171
|
+
}) : null);
|
172
|
+
}));
|
173
|
+
};
|
174
|
+
|
175
|
+
exports.Default = Default;
|
176
|
+
|
177
|
+
var WithSections = function WithSections() {
|
178
|
+
var _useState3 = (0, _react.useState)(environmentsWithSections),
|
179
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
180
|
+
environments = _useState4[0],
|
181
|
+
setEnvironments = _useState4[1];
|
182
|
+
|
183
|
+
var _useState5 = (0, _react.useState)({
|
184
|
+
name: 'Consumer Banking Prod'
|
185
|
+
}),
|
186
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
187
|
+
selectedEnvironment = _useState6[0],
|
188
|
+
setSelectedEnvironment = _useState6[1];
|
189
|
+
|
190
|
+
var recentEnvShown = 3;
|
191
|
+
|
192
|
+
var getUpdatedRecentEnvs = function getUpdatedRecentEnvs(envObj, prevEnvs) {
|
193
|
+
var _context3;
|
194
|
+
|
195
|
+
var envName = envObj.name;
|
196
|
+
var isDuplicate = (0, _filter["default"])(prevEnvs).call(prevEnvs, function (prevEnv) {
|
197
|
+
return prevEnv.name === envName;
|
198
|
+
}).length > 0;
|
199
|
+
|
200
|
+
if (isDuplicate) {
|
201
|
+
var _context;
|
202
|
+
|
203
|
+
return (0, _concat["default"])(_context = [_objectSpread({}, envObj)]).call(_context, (0, _filter["default"])(prevEnvs).call(prevEnvs, function (prevEnv) {
|
204
|
+
return prevEnv.name !== envName;
|
205
|
+
}));
|
206
|
+
}
|
207
|
+
|
208
|
+
if (prevEnvs.length >= recentEnvShown) {
|
209
|
+
var _context2;
|
210
|
+
|
211
|
+
return (0, _concat["default"])(_context2 = [_objectSpread({}, envObj)]).call(_context2, (0, _slice["default"])(prevEnvs).call(prevEnvs, 0, recentEnvShown - 1));
|
212
|
+
}
|
213
|
+
|
214
|
+
return (0, _concat["default"])(_context3 = [_objectSpread({}, envObj)]).call(_context3, prevEnvs);
|
215
|
+
};
|
216
|
+
|
217
|
+
var findEnvObj = function findEnvObj(envName) {
|
218
|
+
var _context4;
|
219
|
+
|
220
|
+
return (0, _find["default"])(_context4 = (0, _find["default"])(environments).call(environments, function (section) {
|
221
|
+
return section.name === 'All';
|
222
|
+
}).options).call(_context4, function (option) {
|
223
|
+
return option.name === envName;
|
224
|
+
});
|
225
|
+
};
|
226
|
+
|
227
|
+
var handleEnvPress = function handleEnvPress(newEnv) {
|
228
|
+
var sectionPrefixIndex = (0, _indexOf["default"])(newEnv).call(newEnv, '-');
|
229
|
+
var envKey = newEnv.substr(sectionPrefixIndex + 1);
|
230
|
+
var recentEnvironments = (0, _find["default"])(environments).call(environments, function (envSection) {
|
231
|
+
return envSection.name === 'Recent';
|
232
|
+
}).options;
|
233
|
+
var envObj = findEnvObj(envKey);
|
234
|
+
var updatedRecentEnvironments = getUpdatedRecentEnvs(envObj, recentEnvironments);
|
235
|
+
setEnvironments(function (prevEnvs) {
|
236
|
+
return (0, _map["default"])(prevEnvs).call(prevEnvs, function (section) {
|
237
|
+
return section.name === 'Recent' ? _objectSpread(_objectSpread({}, section), {}, {
|
238
|
+
options: updatedRecentEnvironments
|
239
|
+
}) : section;
|
240
|
+
});
|
241
|
+
});
|
242
|
+
setSelectedEnvironment(_objectSpread({}, envObj));
|
243
|
+
};
|
244
|
+
|
245
|
+
var envNode = (0, _react2.jsx)(_index.Box, {
|
246
|
+
isRow: true
|
247
|
+
}, (0, _react2.jsx)(_index.Text, {
|
248
|
+
color: "inherit"
|
249
|
+
}, selectedEnvironment.name), selectedEnvironment.isSandbox ? (0, _react2.jsx)(_index.Chip, {
|
250
|
+
label: "SANDBOX",
|
251
|
+
variant: "boxes.environmentChip",
|
252
|
+
bg: "neutral.40"
|
253
|
+
}) : null);
|
254
|
+
return (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_EnvironmentBreadcrumb["default"], {
|
255
|
+
items: environments,
|
256
|
+
name: "Globochem",
|
257
|
+
selectedItem: envNode,
|
258
|
+
onSelectionChange: handleEnvPress
|
259
|
+
}, function (_ref3) {
|
260
|
+
var sectionName = _ref3.name,
|
261
|
+
sectionOptions = _ref3.options;
|
262
|
+
return (0, _react2.jsx)(_index.Section, {
|
263
|
+
key: sectionName,
|
264
|
+
title: sectionName,
|
265
|
+
items: sectionOptions
|
266
|
+
}, function (_ref4) {
|
267
|
+
var _context5;
|
268
|
+
|
269
|
+
var itemName = _ref4.name,
|
270
|
+
itemOptions = _ref4.options,
|
271
|
+
isSandbox = _ref4.isSandbox;
|
272
|
+
return (0, _react2.jsx)(_index.Item, {
|
273
|
+
key: (0, _concat["default"])(_context5 = "".concat(sectionName, "-")).call(_context5, itemName),
|
274
|
+
childItems: itemOptions,
|
275
|
+
textValue: itemName
|
276
|
+
}, (0, _react2.jsx)(_index.Box, {
|
277
|
+
isRow: true
|
278
|
+
}, itemName, isSandbox ? (0, _react2.jsx)(_index.Chip, {
|
279
|
+
label: "SANDBOX",
|
280
|
+
variant: "boxes.environmentChip",
|
281
|
+
bg: "neutral.40"
|
282
|
+
}) : null));
|
283
|
+
});
|
284
|
+
}));
|
285
|
+
};
|
286
|
+
|
287
|
+
exports.WithSections = WithSections;
|
288
|
+
|
289
|
+
var OrgLevel = function OrgLevel() {
|
290
|
+
return (0, _react2.jsx)(_EnvironmentBreadcrumb["default"], {
|
291
|
+
name: "Globochem"
|
292
|
+
});
|
293
|
+
};
|
294
|
+
|
295
|
+
exports.OrgLevel = OrgLevel;
|
@@ -0,0 +1,287 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));
|
6
|
+
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));
|
8
|
+
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
10
|
+
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
12
|
+
|
13
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
14
|
+
|
15
|
+
var _collections = require("@react-stately/collections");
|
16
|
+
|
17
|
+
var _jestAxe = require("jest-axe");
|
18
|
+
|
19
|
+
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
20
|
+
|
21
|
+
var _index = require("../../index");
|
22
|
+
|
23
|
+
var _react2 = require("@emotion/react");
|
24
|
+
|
25
|
+
var testEnvBreadcrumb = 'test-env-breadcrumb';
|
26
|
+
var testName = 'test-name';
|
27
|
+
var testSelectedItem = 'test-selected-item';
|
28
|
+
var testSearchLabel = 'test-Search-Label';
|
29
|
+
var items = [{
|
30
|
+
name: 'a'
|
31
|
+
}, {
|
32
|
+
name: 'b'
|
33
|
+
}, {
|
34
|
+
name: 'c'
|
35
|
+
}];
|
36
|
+
var itemsWithSections = [{
|
37
|
+
name: 'Heading 1',
|
38
|
+
options: [{
|
39
|
+
name: 'Foo'
|
40
|
+
}, {
|
41
|
+
name: 'Bar'
|
42
|
+
}, {
|
43
|
+
name: 'Baz'
|
44
|
+
}]
|
45
|
+
}];
|
46
|
+
var defaultProps = {
|
47
|
+
'data-testid': testEnvBreadcrumb,
|
48
|
+
name: testName,
|
49
|
+
selectedItem: testSelectedItem,
|
50
|
+
searchProps: {
|
51
|
+
label: testSearchLabel
|
52
|
+
},
|
53
|
+
items: items
|
54
|
+
};
|
55
|
+
var defaultWithSectionsProps = {
|
56
|
+
'data-testid': testEnvBreadcrumb,
|
57
|
+
name: testName,
|
58
|
+
selectedItem: testSelectedItem,
|
59
|
+
searchProps: {
|
60
|
+
label: testSearchLabel
|
61
|
+
},
|
62
|
+
items: itemsWithSections
|
63
|
+
};
|
64
|
+
var onSelectionChange = jest.fn();
|
65
|
+
|
66
|
+
var getComponent = function getComponent(props) {
|
67
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.EnvironmentBreadcrumb, (0, _extends2["default"])({}, defaultProps, props), function (item) {
|
68
|
+
return (0, _react2.jsx)(_index.Item, {
|
69
|
+
key: item.name
|
70
|
+
}, item.name);
|
71
|
+
})));
|
72
|
+
};
|
73
|
+
|
74
|
+
var getSectionsComponent = function getSectionsComponent() {
|
75
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
76
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.EnvironmentBreadcrumb, (0, _extends2["default"])({}, defaultWithSectionsProps, props), function (section) {
|
77
|
+
return (// eslint-disable-next-line testing-library/no-node-access
|
78
|
+
(0, _react2.jsx)(_collections.Section, {
|
79
|
+
key: section.name,
|
80
|
+
name: section.name,
|
81
|
+
items: section.options
|
82
|
+
}, function (item) {
|
83
|
+
return (0, _react2.jsx)(_index.Item, {
|
84
|
+
key: item.name,
|
85
|
+
childItems: item.options
|
86
|
+
}, item.name);
|
87
|
+
})
|
88
|
+
);
|
89
|
+
})));
|
90
|
+
};
|
91
|
+
|
92
|
+
beforeAll(function () {
|
93
|
+
jest.spyOn(window.HTMLElement.prototype, 'clientWidth', 'get').mockImplementation(function () {
|
94
|
+
return 1000;
|
95
|
+
});
|
96
|
+
jest.spyOn(window.HTMLElement.prototype, 'clientHeight', 'get').mockImplementation(function () {
|
97
|
+
return 1000;
|
98
|
+
});
|
99
|
+
window.HTMLElement.prototype.scrollIntoView = jest.fn();
|
100
|
+
jest.spyOn(window.screen, 'width', 'get').mockImplementation(function () {
|
101
|
+
return 1024;
|
102
|
+
});
|
103
|
+
jest.spyOn(window, 'requestAnimationFrame').mockImplementation(function (cb) {
|
104
|
+
return cb();
|
105
|
+
});
|
106
|
+
jest.useFakeTimers();
|
107
|
+
});
|
108
|
+
afterEach(function () {
|
109
|
+
jest.clearAllMocks();
|
110
|
+
onSelectionChange.mockClear();
|
111
|
+
});
|
112
|
+
afterAll(function () {
|
113
|
+
jest.restoreAllMocks();
|
114
|
+
});
|
115
|
+
test('should render environment breadcrumb component by default', function () {
|
116
|
+
getComponent();
|
117
|
+
|
118
|
+
var imageUploadButton = _testWrapper.screen.getByTestId(testEnvBreadcrumb);
|
119
|
+
|
120
|
+
expect(imageUploadButton).toBeInstanceOf(HTMLDivElement);
|
121
|
+
expect(imageUploadButton).toBeInTheDocument();
|
122
|
+
});
|
123
|
+
test('should display name', function () {
|
124
|
+
getComponent();
|
125
|
+
expect(_testWrapper.screen.getByText(testName)).toBeInTheDocument();
|
126
|
+
});
|
127
|
+
test('should display selectedItem', function () {
|
128
|
+
getComponent();
|
129
|
+
expect(_testWrapper.screen.getByText(testSelectedItem)).toBeInTheDocument();
|
130
|
+
});
|
131
|
+
test('should call onNamePress when name pressed', function () {
|
132
|
+
var onNamePressMock = jest.fn();
|
133
|
+
getComponent({
|
134
|
+
onNamePress: onNamePressMock
|
135
|
+
});
|
136
|
+
expect(onNamePressMock).not.toHaveBeenCalled();
|
137
|
+
|
138
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testName));
|
139
|
+
|
140
|
+
expect(onNamePressMock).toHaveBeenCalledTimes(1);
|
141
|
+
});
|
142
|
+
test('should not call onNamePress when current env button pressed', function () {
|
143
|
+
var onNamePressMock = jest.fn();
|
144
|
+
getComponent({
|
145
|
+
onNamePress: onNamePressMock
|
146
|
+
});
|
147
|
+
expect(onNamePressMock).not.toHaveBeenCalled();
|
148
|
+
|
149
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
150
|
+
|
151
|
+
expect(onNamePressMock).not.toHaveBeenCalled();
|
152
|
+
});
|
153
|
+
test('should render items passed in props', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
154
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
155
|
+
while (1) {
|
156
|
+
switch (_context.prev = _context.next) {
|
157
|
+
case 0:
|
158
|
+
getComponent();
|
159
|
+
expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
|
160
|
+
expect(_testWrapper.screen.queryByRole('option')).not.toBeInTheDocument();
|
161
|
+
|
162
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
163
|
+
|
164
|
+
expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
|
165
|
+
expect(_testWrapper.screen.queryAllByRole('option')).toHaveLength(3);
|
166
|
+
|
167
|
+
case 6:
|
168
|
+
case "end":
|
169
|
+
return _context.stop();
|
170
|
+
}
|
171
|
+
}
|
172
|
+
}, _callee);
|
173
|
+
})));
|
174
|
+
test('should render items with sections passed in props', function () {
|
175
|
+
getSectionsComponent();
|
176
|
+
expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
|
177
|
+
expect(_testWrapper.screen.queryByRole('option')).not.toBeInTheDocument();
|
178
|
+
|
179
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
180
|
+
|
181
|
+
expect(_testWrapper.screen.getByRole('group')).toBeInTheDocument();
|
182
|
+
expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
|
183
|
+
expect(_testWrapper.screen.queryAllByRole('option')).toHaveLength(3);
|
184
|
+
});
|
185
|
+
test('should call onSelectionChange when env clicked', function () {
|
186
|
+
var onSelectionChangeMock = jest.fn();
|
187
|
+
getComponent({
|
188
|
+
onSelectionChange: onSelectionChangeMock
|
189
|
+
});
|
190
|
+
expect(onSelectionChangeMock).not.toHaveBeenCalled();
|
191
|
+
|
192
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
193
|
+
|
194
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(items[0].name));
|
195
|
+
|
196
|
+
expect(onSelectionChangeMock).toHaveBeenNthCalledWith(1, items[0].name);
|
197
|
+
});
|
198
|
+
test('should disable item if his hey passed in the disabledKeys prop', function () {
|
199
|
+
getComponent({
|
200
|
+
disabledKeys: ['a']
|
201
|
+
});
|
202
|
+
|
203
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
204
|
+
|
205
|
+
expect(_testWrapper.screen.getByText(items[0].name)).toHaveClass('is-disabled');
|
206
|
+
});
|
207
|
+
test('should call onPopoverOpen if it is passed in the props', function () {
|
208
|
+
var onPopoverOpenMock = jest.fn();
|
209
|
+
getComponent({
|
210
|
+
onPopoverOpen: onPopoverOpenMock
|
211
|
+
});
|
212
|
+
expect(onPopoverOpenMock).not.toHaveBeenCalled();
|
213
|
+
|
214
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
215
|
+
|
216
|
+
expect(onPopoverOpenMock).toHaveBeenCalled();
|
217
|
+
});
|
218
|
+
test('should call onPopoverClose if it is passed in the props', function () {
|
219
|
+
var onPopoverCloseMock = jest.fn();
|
220
|
+
getComponent({
|
221
|
+
onPopoverClose: onPopoverCloseMock
|
222
|
+
});
|
223
|
+
expect(onPopoverCloseMock).not.toHaveBeenCalled();
|
224
|
+
|
225
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
226
|
+
|
227
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testName));
|
228
|
+
|
229
|
+
expect(onPopoverCloseMock).toHaveBeenCalled();
|
230
|
+
});
|
231
|
+
test('should close popover when other component clicked', function () {
|
232
|
+
getComponent();
|
233
|
+
|
234
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
235
|
+
|
236
|
+
expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
|
237
|
+
expect(_testWrapper.screen.queryAllByRole('option')).toHaveLength(3);
|
238
|
+
|
239
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testName));
|
240
|
+
|
241
|
+
expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
|
242
|
+
expect(_testWrapper.screen.queryAllByRole('option')).not.toHaveLength(3);
|
243
|
+
});
|
244
|
+
test('should render current env node if passed in props', function () {
|
245
|
+
var testSelectedItemId = 'testSelectedItemId';
|
246
|
+
getComponent({
|
247
|
+
selectedItem: (0, _react2.jsx)("div", {
|
248
|
+
"data-testid": testSelectedItemId
|
249
|
+
})
|
250
|
+
});
|
251
|
+
expect(_testWrapper.screen.getByTestId(testSelectedItemId)).toBeInTheDocument();
|
252
|
+
});
|
253
|
+
test('should show empty state in search if there are no results', function () {
|
254
|
+
var testEmptySearchText = 'testEmptySearchText';
|
255
|
+
getComponent({
|
256
|
+
emptySearchText: testEmptySearchText
|
257
|
+
});
|
258
|
+
|
259
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
260
|
+
|
261
|
+
_userEvent["default"].type(_testWrapper.screen.getByRole('searchbox'), '111');
|
262
|
+
|
263
|
+
expect(_testWrapper.screen.getByText(testEmptySearchText)).toBeInTheDocument();
|
264
|
+
});
|
265
|
+
test('should have no accessibility violations', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
266
|
+
var _getComponent, container, results;
|
267
|
+
|
268
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
269
|
+
while (1) {
|
270
|
+
switch (_context2.prev = _context2.next) {
|
271
|
+
case 0:
|
272
|
+
jest.useRealTimers();
|
273
|
+
_getComponent = getComponent(), container = _getComponent.container;
|
274
|
+
_context2.next = 4;
|
275
|
+
return (0, _jestAxe.axe)(container);
|
276
|
+
|
277
|
+
case 4:
|
278
|
+
results = _context2.sent;
|
279
|
+
expect(results).toHaveNoViolations();
|
280
|
+
|
281
|
+
case 6:
|
282
|
+
case "end":
|
283
|
+
return _context2.stop();
|
284
|
+
}
|
285
|
+
}
|
286
|
+
}, _callee2);
|
287
|
+
})));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
|
7
|
+
_Object$defineProperty(exports, "__esModule", {
|
8
|
+
value: true
|
9
|
+
});
|
10
|
+
|
11
|
+
_Object$defineProperty(exports, "default", {
|
12
|
+
enumerable: true,
|
13
|
+
get: function get() {
|
14
|
+
return _EnvironmentBreadcrumb["default"];
|
15
|
+
}
|
16
|
+
});
|
17
|
+
|
18
|
+
var _EnvironmentBreadcrumb = _interopRequireDefault(require("./EnvironmentBreadcrumb"));
|
@@ -18,8 +18,6 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-c
|
|
18
18
|
|
19
19
|
var _react = _interopRequireWildcard(require("react"));
|
20
20
|
|
21
|
-
var _HelpIcon = _interopRequireDefault(require("mdi-react/HelpIcon"));
|
22
|
-
|
23
21
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
24
22
|
|
25
23
|
var _IconButton = _interopRequireDefault(require("../IconButton"));
|
@@ -30,20 +28,40 @@ var _Icon = _interopRequireDefault(require("../Icon"));
|
|
30
28
|
|
31
29
|
var _react2 = require("@emotion/react");
|
32
30
|
|
31
|
+
var HelpIcon = function HelpIcon() {
|
32
|
+
return (0, _react2.jsx)("svg", {
|
33
|
+
width: "7",
|
34
|
+
height: "9",
|
35
|
+
viewBox: "0 0 7 9",
|
36
|
+
fill: "none",
|
37
|
+
xmlns: "http://www.w3.org/2000/svg"
|
38
|
+
}, (0, _react2.jsx)("path", {
|
39
|
+
d: "M2.56685 7.306V9H4.29385V7.306H2.56685ZM0.795848 3.676H2.41285C2.41285 3.478 2.43485 3.29467 2.47885 3.126C2.52285 2.95 2.58885 2.79967 2.67685 2.675C2.77218 2.543 2.88951 2.44033 3.02885 2.367C3.17551 2.28633 3.34785 2.246 3.54585 2.246C3.83918 2.246 4.06651 2.32667 4.22785 2.488C4.39651 2.64933 4.48085 2.89867 4.48085 3.236C4.48818 3.434 4.45151 3.599 4.37085 3.731C4.29751 3.863 4.19851 3.984 4.07385 4.094C3.94918 4.204 3.81351 4.314 3.66685 4.424C3.52018 4.534 3.38085 4.666 3.24885 4.82C3.11685 4.96667 2.99951 5.14633 2.89685 5.359C2.80151 5.57167 2.74285 5.83567 2.72085 6.151V6.646H4.20585V6.228C4.23518 6.008 4.30485 5.82467 4.41485 5.678C4.53218 5.53133 4.66418 5.403 4.81085 5.293C4.95751 5.17567 5.11151 5.062 5.27285 4.952C5.44151 4.83467 5.59185 4.69533 5.72385 4.534C5.86318 4.37267 5.97685 4.17833 6.06485 3.951C6.16018 3.72367 6.20785 3.434 6.20785 3.082C6.20785 2.86933 6.16018 2.642 6.06485 2.4C5.97685 2.15067 5.82651 1.91967 5.61385 1.707C5.40118 1.49433 5.11885 1.31833 4.76685 1.179C4.42218 1.03233 3.98951 0.959 3.46885 0.959C3.06551 0.959 2.69885 1.02867 2.36885 1.168C2.04618 1.3 1.76751 1.487 1.53285 1.729C1.30551 1.971 1.12585 2.257 0.993848 2.587C0.869181 2.917 0.803181 3.28 0.795848 3.676Z",
|
40
|
+
fill: "#3B4A58"
|
41
|
+
}));
|
42
|
+
};
|
43
|
+
/**
|
44
|
+
* A `HelpHint` is a composed component using tooltip trigger and icon button.
|
45
|
+
*
|
46
|
+
* For customization the trigger icon,
|
47
|
+
* please see the [TooltipTrigger](./?path=/docs/tooltiptrigger--default) docs.
|
48
|
+
*/
|
49
|
+
|
50
|
+
|
33
51
|
var HelpHint = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
34
52
|
var children = props.children,
|
35
53
|
tooltipProps = props.tooltipProps,
|
36
54
|
iconButtonProps = props.iconButtonProps,
|
37
55
|
others = (0, _objectWithoutProperties2["default"])(props, ["children", "tooltipProps", "iconButtonProps"]);
|
38
56
|
return (0, _react2.jsx)(_TooltipTrigger["default"], (0, _extends2["default"])({
|
39
|
-
ref: ref
|
40
|
-
|
57
|
+
ref: ref,
|
58
|
+
direction: "top"
|
59
|
+
}, others, tooltipProps), (0, _react2.jsx)(_IconButton["default"], (0, _extends2["default"])({
|
41
60
|
variant: "helpHint",
|
42
61
|
"aria-label": "label help hint",
|
43
62
|
"data-testid": "help-hint__button"
|
44
63
|
}, iconButtonProps), (0, _react2.jsx)(_Icon["default"], {
|
45
|
-
icon:
|
46
|
-
size: "11px"
|
64
|
+
icon: HelpIcon
|
47
65
|
})), (0, _react2.jsx)(_TooltipTrigger.Tooltip, tooltipProps, children));
|
48
66
|
});
|
49
67
|
HelpHint.propTypes = {
|