@decisiv/ui-components 2.0.1-alpha.222 → 2.0.1-alpha.223
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/atoms/OptionsList/index.d.ts.map +1 -1
- package/lib/atoms/OptionsList/index.js +141 -15
- package/lib/atoms/OptionsList/index.test.js +89 -36
- package/lib/atoms/OptionsList/types.d.ts +16 -0
- package/lib/atoms/OptionsList/types.d.ts.map +1 -1
- package/lib/atoms/OptionsList/utils.d.ts +3 -1
- package/lib/atoms/OptionsList/utils.d.ts.map +1 -1
- package/lib/atoms/OptionsList/utils.js +79 -2
- package/lib/components/Combobox/index.d.ts.map +1 -1
- package/lib/components/Combobox/index.js +4 -2
- package/lib/components/Combobox/types.d.ts +1 -0
- package/lib/components/Combobox/types.d.ts.map +1 -1
- package/lib/components/Wizard/index.d.ts +8 -1
- package/lib/components/Wizard/index.d.ts.map +1 -1
- package/lib/components/Wizard/index.js +31 -19
- package/lib/components/Wizard/index.test.js +117 -28
- package/lib/components/Wizard/schema.d.ts.map +1 -1
- package/lib/components/Wizard/schema.js +4 -3
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/OptionsList/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/OptionsList/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAqBf,OAAO,EAEL,gBAAgB,EAMjB,MAAM,SAAS,CAAC;AAqBjB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA8iBrC,QAAA,MAAM,2BAA2B,2FAA0B,CAAC;AAmC5D,eAAe,2BAA2B,CAAC"}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
Object.defineProperty(exports, "Container", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function get() {
|
|
9
|
-
return
|
|
9
|
+
return _styles2.Container;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
exports.default = void 0;
|
|
@@ -19,6 +19,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
19
19
|
|
|
20
20
|
var _isArray = _interopRequireDefault(require("lodash/isArray"));
|
|
21
21
|
|
|
22
|
+
var _reactWindow = require("react-window");
|
|
23
|
+
|
|
22
24
|
var _Button = require("../../components/Button");
|
|
23
25
|
|
|
24
26
|
var _Grid = _interopRequireDefault(require("../../components/Grid"));
|
|
@@ -37,9 +39,11 @@ var _Option = _interopRequireDefault(require("./Option"));
|
|
|
37
39
|
|
|
38
40
|
var _Category = _interopRequireDefault(require("./Category"));
|
|
39
41
|
|
|
42
|
+
var _styles = require("./Category/styles");
|
|
43
|
+
|
|
40
44
|
var _Footer = _interopRequireDefault(require("./Footer"));
|
|
41
45
|
|
|
42
|
-
var
|
|
46
|
+
var _styles2 = require("./styles");
|
|
43
47
|
|
|
44
48
|
var _context = require("./context");
|
|
45
49
|
|
|
@@ -59,8 +63,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
59
63
|
|
|
60
64
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
61
65
|
|
|
62
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
63
|
-
|
|
64
66
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
|
|
65
67
|
|
|
66
68
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
|
|
@@ -77,6 +79,8 @@ function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d =
|
|
|
77
79
|
|
|
78
80
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
79
81
|
|
|
82
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
83
|
+
|
|
80
84
|
var Row = _Grid.default.Row;
|
|
81
85
|
var isUsingKeyboard = false;
|
|
82
86
|
|
|
@@ -88,6 +92,41 @@ if (_canUseDOM.default) {
|
|
|
88
92
|
isUsingKeyboard = false;
|
|
89
93
|
});
|
|
90
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* VirtualRow component for VariableSizeList (react-window)
|
|
97
|
+
* Renders a single item (either a Category header or an Option)
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
/* eslint-disable react/prop-types */
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
var VirtualRow = _react.default.memo(function (_ref) {
|
|
104
|
+
var index = _ref.index,
|
|
105
|
+
style = _ref.style,
|
|
106
|
+
data = _ref.data;
|
|
107
|
+
var flattenedItems = data.flattenedItems,
|
|
108
|
+
borderRadius = data.borderRadius,
|
|
109
|
+
showCheckbox = data.showCheckbox,
|
|
110
|
+
size = data.size;
|
|
111
|
+
var flattenedItem = flattenedItems[index];
|
|
112
|
+
var item = flattenedItem.item,
|
|
113
|
+
type = flattenedItem.type;
|
|
114
|
+
var id = (0, _utils.getId)(item);
|
|
115
|
+
return _react.default.createElement("div", {
|
|
116
|
+
style: style
|
|
117
|
+
}, type === 'category-header' ? _react.default.createElement(_styles.StyledCategory, {
|
|
118
|
+
size: size
|
|
119
|
+
}, item.label) : _react.default.createElement(_Option.default, _extends({}, item, {
|
|
120
|
+
key: id,
|
|
121
|
+
borderRadius: borderRadius,
|
|
122
|
+
showCheckbox: showCheckbox,
|
|
123
|
+
size: size
|
|
124
|
+
})));
|
|
125
|
+
});
|
|
126
|
+
/* eslint-enable react/prop-types */
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
VirtualRow.displayName = 'VirtualRow';
|
|
91
130
|
|
|
92
131
|
function OptionsList(props, forwardedRef) {
|
|
93
132
|
var actions = props.actions,
|
|
@@ -114,7 +153,8 @@ function OptionsList(props, forwardedRef) {
|
|
|
114
153
|
minWidth = props.minWidth,
|
|
115
154
|
maxWidth = props.maxWidth,
|
|
116
155
|
maxHeight = props.maxHeight,
|
|
117
|
-
pointerEvents = props.pointerEvents
|
|
156
|
+
pointerEvents = props.pointerEvents,
|
|
157
|
+
enableVirtualization = props.enableVirtualization;
|
|
118
158
|
var initialIds = selectedIdsProp || defaultSelected;
|
|
119
159
|
|
|
120
160
|
var _useState = (0, _react.useState)(null),
|
|
@@ -127,6 +167,40 @@ function OptionsList(props, forwardedRef) {
|
|
|
127
167
|
selectedIds = _useState4[0],
|
|
128
168
|
setSelectedIds = _useState4[1];
|
|
129
169
|
|
|
170
|
+
var isDragEnabled = !!onDragEndProp;
|
|
171
|
+
var useVirtualization = enableVirtualization && !isDragEnabled; // Flatten items for virtualization
|
|
172
|
+
|
|
173
|
+
var flattenedItems = (0, _react.useMemo)(function () {
|
|
174
|
+
if (!useVirtualization) return [];
|
|
175
|
+
return (0, _utils.flattenItems)(items);
|
|
176
|
+
}, [items, useVirtualization]); // Get item size for VariableSizeList
|
|
177
|
+
|
|
178
|
+
var getItemSize = (0, _react.useCallback)(function (index) {
|
|
179
|
+
return (0, _utils.getItemHeight)(flattenedItems[index], size);
|
|
180
|
+
}, [flattenedItems, size]); // Calculate total height for the list
|
|
181
|
+
|
|
182
|
+
var totalHeight = (0, _react.useMemo)(function () {
|
|
183
|
+
if (!useVirtualization) return 0;
|
|
184
|
+
var calculated = flattenedItems.reduce(function (acc, item) {
|
|
185
|
+
return acc + (0, _utils.getItemHeight)(item, size);
|
|
186
|
+
}, 0); // If maxHeight is explicitly provided, use it
|
|
187
|
+
|
|
188
|
+
if (maxHeight && typeof maxHeight === 'string') {
|
|
189
|
+
var max = parseInt(maxHeight, 10);
|
|
190
|
+
return Math.min(calculated, max);
|
|
191
|
+
} // Default behavior: use 310px max, but if calculated is less, use calculated
|
|
192
|
+
// This ensures small lists render all items (important for tests)
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
var defaultMax = 310; // If the list is small enough to fit all items, use calculated height
|
|
196
|
+
// This is important for tests and small lists
|
|
197
|
+
|
|
198
|
+
if (calculated <= defaultMax) {
|
|
199
|
+
return calculated;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
return defaultMax;
|
|
203
|
+
}, [flattenedItems, size, maxHeight, useVirtualization]);
|
|
130
204
|
var updateSelectionAndTriggerChange = (0, _react.useCallback)(function (ids) {
|
|
131
205
|
// Only toggle if we are "uncontrolled"
|
|
132
206
|
selectedIdsProp === undefined && selectable && setSelectedIds(ids);
|
|
@@ -161,8 +235,8 @@ function OptionsList(props, forwardedRef) {
|
|
|
161
235
|
|
|
162
236
|
var selectableIds = (0, _react.useMemo)(function () {
|
|
163
237
|
return items.reduce(function (acc, item) {
|
|
164
|
-
return [].concat(_toConsumableArray(acc), _toConsumableArray(((0, _utils.isCategory)(item) ? item.items.filter(function (
|
|
165
|
-
var disabled =
|
|
238
|
+
return [].concat(_toConsumableArray(acc), _toConsumableArray(((0, _utils.isCategory)(item) ? item.items.filter(function (_ref2) {
|
|
239
|
+
var disabled = _ref2.disabled;
|
|
166
240
|
return !disabled;
|
|
167
241
|
}) : [item.disabled ? undefined : item]).filter(Boolean)));
|
|
168
242
|
}, []).map(_utils.getId);
|
|
@@ -260,9 +334,9 @@ function OptionsList(props, forwardedRef) {
|
|
|
260
334
|
handleFocusToggle(event);
|
|
261
335
|
}, [handleFocusToggle, updateActiveId]);
|
|
262
336
|
var positions = [];
|
|
263
|
-
var onDragEnd = (0, _react.useCallback)(function (
|
|
264
|
-
var source =
|
|
265
|
-
destination =
|
|
337
|
+
var onDragEnd = (0, _react.useCallback)(function (_ref3) {
|
|
338
|
+
var source = _ref3.source,
|
|
339
|
+
destination = _ref3.destination;
|
|
266
340
|
if (!onDragEndProp || !destination) return;
|
|
267
341
|
|
|
268
342
|
var _positions$source$ind = _slicedToArray(positions[source.index], 2),
|
|
@@ -303,9 +377,17 @@ function OptionsList(props, forwardedRef) {
|
|
|
303
377
|
}, [onDragEndProp, positions]);
|
|
304
378
|
|
|
305
379
|
var _useConfig = (0, _ConfigProvider.useConfig)(),
|
|
306
|
-
createPortal = _useConfig.createPortal;
|
|
380
|
+
createPortal = _useConfig.createPortal; // Warn developers if they try to use both features
|
|
307
381
|
|
|
308
|
-
|
|
382
|
+
|
|
383
|
+
(0, _react.useEffect)(function () {
|
|
384
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
385
|
+
if (enableVirtualization && isDragEnabled) {
|
|
386
|
+
// eslint-disable-next-line no-console
|
|
387
|
+
console.warn('OptionsList: enableVirtualization is ignored when onDragEnd is provided. ' + 'Virtualization and drag-and-drop are incompatible.');
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}, [enableVirtualization, isDragEnabled]);
|
|
309
391
|
|
|
310
392
|
var renderDraggable = function renderDraggable(item, index) {
|
|
311
393
|
var id = (0, _utils.getId)(item);
|
|
@@ -352,10 +434,36 @@ function OptionsList(props, forwardedRef) {
|
|
|
352
434
|
}
|
|
353
435
|
}, _react.default.createElement(_Grid.default.Container, null, _react.default.createElement(Row, null, _react.default.createElement(_reactBeautifulDnd.DragDropContext, {
|
|
354
436
|
onDragEnd: onDragEnd
|
|
355
|
-
}, _react.default.createElement(
|
|
437
|
+
}, useVirtualization ? _react.default.createElement(_styles2.Container, {
|
|
438
|
+
"aria-activedescendant": activeId,
|
|
439
|
+
"aria-multiselectable": !!multiple,
|
|
440
|
+
ref: setContainerRefFunc,
|
|
441
|
+
onKeyDown: onKeyDown,
|
|
442
|
+
onFocus: onFocus,
|
|
443
|
+
onBlur: onBlur,
|
|
444
|
+
onMouseLeave: function onMouseLeave() {
|
|
445
|
+
return updateActiveId('');
|
|
446
|
+
},
|
|
447
|
+
role: role,
|
|
448
|
+
tabIndex: tabIndex,
|
|
449
|
+
minWidth: minWidth,
|
|
450
|
+
maxWidth: maxWidth,
|
|
451
|
+
maxHeight: maxHeight
|
|
452
|
+
}, _react.default.createElement(_reactWindow.VariableSizeList, {
|
|
453
|
+
height: totalHeight,
|
|
454
|
+
itemCount: flattenedItems.length,
|
|
455
|
+
itemSize: getItemSize,
|
|
456
|
+
width: "100%",
|
|
457
|
+
itemData: {
|
|
458
|
+
flattenedItems: flattenedItems,
|
|
459
|
+
borderRadius: borderRadius,
|
|
460
|
+
showCheckbox: showCheckbox || false,
|
|
461
|
+
size: size
|
|
462
|
+
}
|
|
463
|
+
}, VirtualRow)) : _react.default.createElement(_reactBeautifulDnd.Droppable, {
|
|
356
464
|
droppableId: "droppable-options-list"
|
|
357
465
|
}, function (droppableProvided) {
|
|
358
|
-
return _react.default.createElement(
|
|
466
|
+
return _react.default.createElement(_styles2.Container, _extends({
|
|
359
467
|
"aria-activedescendant": activeId,
|
|
360
468
|
"aria-multiselectable": !!multiple,
|
|
361
469
|
ref: function ref(el) {
|
|
@@ -373,7 +481,7 @@ function OptionsList(props, forwardedRef) {
|
|
|
373
481
|
minWidth: minWidth,
|
|
374
482
|
maxWidth: maxWidth,
|
|
375
483
|
maxHeight: maxHeight
|
|
376
|
-
}, droppableProvided.droppableProps), items.map(function (item, index) {
|
|
484
|
+
}, droppableProvided.droppableProps), isDragEnabled ? items.map(function (item, index) {
|
|
377
485
|
var id = (0, _utils.getId)(item);
|
|
378
486
|
var indexOffset = positions.length;
|
|
379
487
|
positions[dndIndex] = [index];
|
|
@@ -395,6 +503,24 @@ function OptionsList(props, forwardedRef) {
|
|
|
395
503
|
}
|
|
396
504
|
|
|
397
505
|
return renderDraggable(item, dndIndex - 1);
|
|
506
|
+
}) : items.map(function (item) {
|
|
507
|
+
var id = (0, _utils.getId)(item);
|
|
508
|
+
|
|
509
|
+
if ((0, _utils.isCategory)(item)) {
|
|
510
|
+
return _react.default.createElement(_Category.default, _extends({}, item, {
|
|
511
|
+
key: id,
|
|
512
|
+
borderRadius: borderRadius,
|
|
513
|
+
showCheckbox: showCheckbox,
|
|
514
|
+
size: size
|
|
515
|
+
}));
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
return _react.default.createElement(_Option.default, _extends({}, item, {
|
|
519
|
+
key: id,
|
|
520
|
+
borderRadius: borderRadius,
|
|
521
|
+
showCheckbox: showCheckbox,
|
|
522
|
+
size: size
|
|
523
|
+
}));
|
|
398
524
|
}), droppableProvided.placeholder);
|
|
399
525
|
}))), actions && _react.default.createElement(Row, null, _react.default.createElement(_Footer.default, {
|
|
400
526
|
actions: actions
|
|
@@ -101,12 +101,65 @@ var defaultProps = {
|
|
|
101
101
|
onChange: jest.fn()
|
|
102
102
|
};
|
|
103
103
|
describe('OptionsList', function () {
|
|
104
|
+
describe('virtualization', function () {
|
|
105
|
+
it('renders with virtualization enabled', function () {
|
|
106
|
+
var _render = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
107
|
+
enableVirtualization: true
|
|
108
|
+
})), {
|
|
109
|
+
wrapper: wrapper
|
|
110
|
+
}),
|
|
111
|
+
container = _render.container; // Verify that react-window's List container is rendered
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
var listContainer = container.querySelector('[style*="overflow"]');
|
|
115
|
+
expect(listContainer).toBeTruthy();
|
|
116
|
+
});
|
|
117
|
+
it('renders without virtualization by default', function () {
|
|
118
|
+
var _render2 = render(_react.default.createElement(_.default, defaultProps), {
|
|
119
|
+
wrapper: wrapper
|
|
120
|
+
}),
|
|
121
|
+
queryByText = _render2.queryByText; // Verify all items are rendered directly (not virtualized)
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
expect(queryByText(item0Label)).toBeTruthy();
|
|
125
|
+
expect(queryByText('Option 1')).toBeTruthy();
|
|
126
|
+
expect(queryByText(item2Label)).toBeTruthy();
|
|
127
|
+
});
|
|
128
|
+
it('warns when enableVirtualization is used with drag-drop', function () {
|
|
129
|
+
var consoleSpy = jest.spyOn(console, 'warn').mockImplementation();
|
|
130
|
+
var onDragEnd = jest.fn();
|
|
131
|
+
render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
132
|
+
enableVirtualization: true,
|
|
133
|
+
onDragEnd: onDragEnd
|
|
134
|
+
})), {
|
|
135
|
+
wrapper: wrapper
|
|
136
|
+
});
|
|
137
|
+
expect(consoleSpy).toHaveBeenCalledWith('OptionsList: enableVirtualization is ignored when onDragEnd is provided. Virtualization and drag-and-drop are incompatible.');
|
|
138
|
+
consoleSpy.mockRestore();
|
|
139
|
+
});
|
|
140
|
+
it('disables virtualization when drag-drop is enabled', function () {
|
|
141
|
+
var onDragEnd = jest.fn();
|
|
142
|
+
|
|
143
|
+
var _render3 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
144
|
+
enableVirtualization: true,
|
|
145
|
+
onDragEnd: onDragEnd
|
|
146
|
+
})), {
|
|
147
|
+
wrapper: wrapper
|
|
148
|
+
}),
|
|
149
|
+
queryByText = _render3.queryByText; // All items should be rendered directly (not virtualized) when drag-drop is enabled
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
expect(queryByText(item0Label)).toBeTruthy();
|
|
153
|
+
expect(queryByText('Option 1')).toBeTruthy();
|
|
154
|
+
expect(queryByText(item2Label)).toBeTruthy();
|
|
155
|
+
});
|
|
156
|
+
});
|
|
104
157
|
['small', 'medium'].forEach(function (size) {
|
|
105
158
|
it('renders items and categories sub items', function () {
|
|
106
|
-
var
|
|
159
|
+
var _render4 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
107
160
|
size: size
|
|
108
161
|
}))),
|
|
109
|
-
queryByText =
|
|
162
|
+
queryByText = _render4.queryByText;
|
|
110
163
|
|
|
111
164
|
items.forEach(function (item) {
|
|
112
165
|
var label = item.label;
|
|
@@ -126,11 +179,11 @@ describe('OptionsList', function () {
|
|
|
126
179
|
return _react.default.createElement("span", null, "".concat(label, " foo"));
|
|
127
180
|
};
|
|
128
181
|
|
|
129
|
-
var
|
|
182
|
+
var _render5 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
130
183
|
renderOptionLabel: renderOptionLabel,
|
|
131
184
|
size: size
|
|
132
185
|
}))),
|
|
133
|
-
queryByText =
|
|
186
|
+
queryByText = _render5.queryByText;
|
|
134
187
|
|
|
135
188
|
items.forEach(function (item) {
|
|
136
189
|
var label = item.label;
|
|
@@ -146,19 +199,19 @@ describe('OptionsList', function () {
|
|
|
146
199
|
});
|
|
147
200
|
});
|
|
148
201
|
it('checks that labelDetails when provided ', function () {
|
|
149
|
-
var
|
|
202
|
+
var _render6 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
150
203
|
size: size
|
|
151
204
|
}))),
|
|
152
|
-
getByText =
|
|
205
|
+
getByText = _render6.getByText;
|
|
153
206
|
|
|
154
207
|
expect(getByText('test detail label')).toBeInTheDocument();
|
|
155
208
|
});
|
|
156
209
|
it('navigates through the options with arrow keys', function () {
|
|
157
|
-
var
|
|
210
|
+
var _render7 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
158
211
|
size: size
|
|
159
212
|
}))),
|
|
160
|
-
getByText =
|
|
161
|
-
container =
|
|
213
|
+
getByText = _render7.getByText,
|
|
214
|
+
container = _render7.container;
|
|
162
215
|
|
|
163
216
|
var optionsList = container.querySelector('ul'); // simulate it is focused while tabbing
|
|
164
217
|
|
|
@@ -187,12 +240,12 @@ describe('OptionsList', function () {
|
|
|
187
240
|
it('selects an item with Enter or Space key', function () {
|
|
188
241
|
var onChange = jest.fn();
|
|
189
242
|
|
|
190
|
-
var
|
|
243
|
+
var _render8 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
191
244
|
onChange: onChange,
|
|
192
245
|
size: size
|
|
193
246
|
}))),
|
|
194
|
-
getByLabelText =
|
|
195
|
-
container =
|
|
247
|
+
getByLabelText = _render8.getByLabelText,
|
|
248
|
+
container = _render8.container;
|
|
196
249
|
|
|
197
250
|
var selectedItem = defaultProps.items[1];
|
|
198
251
|
var optionsList = container.querySelector('ul'); // simulate it is focused while tabbing
|
|
@@ -229,13 +282,13 @@ describe('OptionsList', function () {
|
|
|
229
282
|
disabled: true
|
|
230
283
|
}];
|
|
231
284
|
|
|
232
|
-
var
|
|
285
|
+
var _render9 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
233
286
|
items: onlyDisabledItems,
|
|
234
287
|
onChange: onChange,
|
|
235
288
|
size: size
|
|
236
289
|
}))),
|
|
237
|
-
getByLabelText =
|
|
238
|
-
container =
|
|
290
|
+
getByLabelText = _render9.getByLabelText,
|
|
291
|
+
container = _render9.container;
|
|
239
292
|
|
|
240
293
|
var optionsList = container.querySelector('ul'); // simulate it is focused while tabbing
|
|
241
294
|
|
|
@@ -262,12 +315,12 @@ describe('OptionsList', function () {
|
|
|
262
315
|
it('calls onChange with id when item is clicked', function () {
|
|
263
316
|
var onChange = jest.fn();
|
|
264
317
|
|
|
265
|
-
var
|
|
318
|
+
var _render10 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
266
319
|
onChange: onChange,
|
|
267
320
|
size: size
|
|
268
321
|
}))),
|
|
269
|
-
getByText =
|
|
270
|
-
getByLabelText =
|
|
322
|
+
getByText = _render10.getByText,
|
|
323
|
+
getByLabelText = _render10.getByLabelText;
|
|
271
324
|
|
|
272
325
|
var item = items[0];
|
|
273
326
|
|
|
@@ -286,12 +339,12 @@ describe('OptionsList', function () {
|
|
|
286
339
|
it('does not calls onChange when item is clicked', function () {
|
|
287
340
|
var onChange = jest.fn();
|
|
288
341
|
|
|
289
|
-
var
|
|
342
|
+
var _render11 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
290
343
|
onChange: onChange,
|
|
291
344
|
size: size
|
|
292
345
|
}))),
|
|
293
|
-
getByText =
|
|
294
|
-
getByLabelText =
|
|
346
|
+
getByText = _render11.getByText,
|
|
347
|
+
getByLabelText = _render11.getByLabelText;
|
|
295
348
|
|
|
296
349
|
_react2.fireEvent.click(getByText(disabledItemLabel));
|
|
297
350
|
|
|
@@ -305,12 +358,12 @@ describe('OptionsList', function () {
|
|
|
305
358
|
it('prefers value over internal', function () {
|
|
306
359
|
var selected = items[1];
|
|
307
360
|
|
|
308
|
-
var
|
|
361
|
+
var _render12 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
309
362
|
selected: selected.id,
|
|
310
363
|
size: size
|
|
311
364
|
}))),
|
|
312
|
-
getByText =
|
|
313
|
-
getByLabelText =
|
|
365
|
+
getByText = _render12.getByText,
|
|
366
|
+
getByLabelText = _render12.getByLabelText;
|
|
314
367
|
|
|
315
368
|
var item = items[0];
|
|
316
369
|
|
|
@@ -325,13 +378,13 @@ describe('OptionsList', function () {
|
|
|
325
378
|
it('calls onChange with array of selected ids when item is clicked', function () {
|
|
326
379
|
var onChange = jest.fn();
|
|
327
380
|
|
|
328
|
-
var
|
|
381
|
+
var _render13 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
329
382
|
onChange: onChange,
|
|
330
383
|
multiple: true,
|
|
331
384
|
size: size
|
|
332
385
|
}))),
|
|
333
|
-
getByText =
|
|
334
|
-
getByLabelText =
|
|
386
|
+
getByText = _render13.getByText,
|
|
387
|
+
getByLabelText = _render13.getByLabelText;
|
|
335
388
|
|
|
336
389
|
var item = items[0];
|
|
337
390
|
|
|
@@ -370,13 +423,13 @@ describe('OptionsList', function () {
|
|
|
370
423
|
onClick: onClick
|
|
371
424
|
}];
|
|
372
425
|
|
|
373
|
-
var
|
|
426
|
+
var _render14 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
374
427
|
actions: actions,
|
|
375
428
|
multiple: true,
|
|
376
429
|
size: size
|
|
377
430
|
}))),
|
|
378
|
-
baseElement =
|
|
379
|
-
getByText =
|
|
431
|
+
baseElement = _render14.baseElement,
|
|
432
|
+
getByText = _render14.getByText;
|
|
380
433
|
|
|
381
434
|
actions.forEach(function (_ref5) {
|
|
382
435
|
var label = _ref5.text;
|
|
@@ -389,11 +442,11 @@ describe('OptionsList', function () {
|
|
|
389
442
|
it('has draggable attributes', function () {
|
|
390
443
|
var mockedFn = jest.fn();
|
|
391
444
|
|
|
392
|
-
var
|
|
445
|
+
var _render15 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
393
446
|
size: size,
|
|
394
447
|
onDragEnd: mockedFn
|
|
395
448
|
}))),
|
|
396
|
-
getByText =
|
|
449
|
+
getByText = _render15.getByText;
|
|
397
450
|
|
|
398
451
|
var item = items[0];
|
|
399
452
|
expect(getByText(item.label).closest('li')).toHaveAttribute('draggable');
|
|
@@ -403,10 +456,10 @@ describe('OptionsList', function () {
|
|
|
403
456
|
});
|
|
404
457
|
});
|
|
405
458
|
it('does not have draggable attributes when onDragEnd is not provided', function () {
|
|
406
|
-
var
|
|
459
|
+
var _render16 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
407
460
|
size: size
|
|
408
461
|
}))),
|
|
409
|
-
getByText =
|
|
462
|
+
getByText = _render16.getByText;
|
|
410
463
|
|
|
411
464
|
var item = items[0];
|
|
412
465
|
expect(getByText(item.label).closest('li')).not.toHaveAttribute('draggable');
|
|
@@ -419,11 +472,11 @@ describe('OptionsList', function () {
|
|
|
419
472
|
it.skip('calls onDragEnd when drag ends', function () {
|
|
420
473
|
var mockedFn = jest.fn();
|
|
421
474
|
|
|
422
|
-
var
|
|
475
|
+
var _render17 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
423
476
|
size: size,
|
|
424
477
|
onDragEnd: mockedFn
|
|
425
478
|
}))),
|
|
426
|
-
getByText =
|
|
479
|
+
getByText = _render17.getByText;
|
|
427
480
|
|
|
428
481
|
var draggableElement = getByText(items[0].label).closest('li');
|
|
429
482
|
var dropTarget = getByText('Option 2').closest('li');
|
|
@@ -93,6 +93,7 @@ export interface OptionsListProps extends OptionsListDimensions {
|
|
|
93
93
|
itemRole?: string;
|
|
94
94
|
pointerEvents?: string;
|
|
95
95
|
onDragEnd?: (from: number | number[], to: number | number[]) => void;
|
|
96
|
+
enableVirtualization?: boolean;
|
|
96
97
|
}
|
|
97
98
|
export declare type OptionsListContainerRef = HTMLUListElement;
|
|
98
99
|
export interface StyledCategoryProps {
|
|
@@ -112,5 +113,20 @@ export interface ContainerProps {
|
|
|
112
113
|
export interface StyledLinkProps extends LinkProps {
|
|
113
114
|
disabled: boolean;
|
|
114
115
|
}
|
|
116
|
+
export interface FlattenedItem {
|
|
117
|
+
item: Item;
|
|
118
|
+
type: 'option' | 'category-header';
|
|
119
|
+
originalItem: Item;
|
|
120
|
+
}
|
|
121
|
+
export interface VirtualRowProps {
|
|
122
|
+
index: number;
|
|
123
|
+
style: React.CSSProperties;
|
|
124
|
+
data: {
|
|
125
|
+
flattenedItems: FlattenedItem[];
|
|
126
|
+
borderRadius?: string;
|
|
127
|
+
showCheckbox: boolean;
|
|
128
|
+
size: 'small' | 'medium';
|
|
129
|
+
};
|
|
130
|
+
}
|
|
115
131
|
export {};
|
|
116
132
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/atoms/OptionsList/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,gCAAgC,EAChC,+BAA+B,EAChC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,oBAAY,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;AAClE,oBAAY,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEpE,oBAAY,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAC3D,oBAAY,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAClD,oBAAY,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAE1C,oBAAY,qBAAqB,GAAG,IAAI,CACtC,eAAe,EACf,UAAU,GAAG,WAAW,GAAG,UAAU,CACtC,CAAC;AAEF,UAAU,gBAAiB,SAAQ,iBAAiB;IAClD,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,eAAgB,SAAQ,gBAAgB;IAChD,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,oBAAY,aAAa,GAAG,eAAe,GAAG,WAAW,EAAE,CAAC;AAE5D,oBAAY,UAAU,GAAG,gBAAgB,GAAG,eAAe,GAAG,cAAc,CAAC;AAE7E,MAAM,WAAW,QAAQ;IACvB,YAAY,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oBAAY,aAAa,GAAG,QAAQ,CAAC;AAErC,oBAAY,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;AAE9D,UAAU,UAAU;IAClB,YAAY,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,+BAA+B,CAAC;IACjD,eAAe,CAAC,EAAE,gCAAgC,CAAC;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AACD,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAE7C,oBAAY,WAAW,GAAG,MAAM,CAAC;AAEjC,oBAAY,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErC,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC;IAChD,YAAY,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/atoms/OptionsList/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Item, Category, Option, LinkOption } from './types';
|
|
1
|
+
import { Item, Category, Option, LinkOption, FlattenedItem } from './types';
|
|
2
2
|
export declare const getId: (item: Item) => string;
|
|
3
3
|
export declare const isCategory: (item: Item) => item is Category;
|
|
4
4
|
export declare const sanitizeIds: (ids: string | string[] | undefined, multiple: boolean) => string[];
|
|
@@ -6,4 +6,6 @@ export declare const ensureItemIsVisible: (container: HTMLUListElement | null, i
|
|
|
6
6
|
focus?: boolean | undefined;
|
|
7
7
|
} | undefined) => void;
|
|
8
8
|
export declare const isLink: (item: Option) => item is LinkOption;
|
|
9
|
+
export declare const flattenItems: (items: Item[]) => FlattenedItem[];
|
|
10
|
+
export declare const getItemHeight: (flattenedItem: FlattenedItem, size?: "small" | "medium") => number;
|
|
9
11
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/atoms/OptionsList/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/atoms/OptionsList/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE5E,eAAO,MAAM,KAAK,wBAAgD,CAAC;AAEnE,eAAO,MAAM,UAAU,kCACuB,CAAC;AAE/C,eAAO,MAAM,WAAW,qEAWvB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;sBA+B/B,CAAC;AAEF,eAAO,MAAM,MAAM,sCACgB,CAAC;AAepC,eAAO,MAAM,YAAY,oCA+BxB,CAAC;AAYF,eAAO,MAAM,aAAa,qEAkBzB,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.isLink = exports.ensureItemIsVisible = exports.sanitizeIds = exports.isCategory = exports.getId = void 0;
|
|
6
|
+
exports.getItemHeight = exports.flattenItems = exports.isLink = exports.ensureItemIsVisible = exports.sanitizeIds = exports.isCategory = exports.getId = void 0;
|
|
7
7
|
|
|
8
8
|
var _castArray = _interopRequireDefault(require("lodash/castArray"));
|
|
9
9
|
|
|
@@ -73,5 +73,82 @@ exports.ensureItemIsVisible = ensureItemIsVisible;
|
|
|
73
73
|
var isLink = function isLink(item) {
|
|
74
74
|
return 'linkTo' in item && !!item.linkTo;
|
|
75
75
|
};
|
|
76
|
+
/**
|
|
77
|
+
* Flatten items array to include category items inline for virtualization
|
|
78
|
+
*
|
|
79
|
+
* Categories are rendered as:
|
|
80
|
+
* - Category header (with special styling)
|
|
81
|
+
* - Followed by its items
|
|
82
|
+
*
|
|
83
|
+
* This function transforms:
|
|
84
|
+
* [Option1, Category{items: [Option2, Option3]}, Option4]
|
|
85
|
+
*
|
|
86
|
+
* Into:
|
|
87
|
+
* [Option1, CategoryHeader, Option2, Option3, Option4]
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
exports.isLink = isLink;
|
|
92
|
+
|
|
93
|
+
var flattenItems = function flattenItems(items) {
|
|
94
|
+
var flattened = [];
|
|
95
|
+
items.forEach(function (item) {
|
|
96
|
+
if (isCategory(item)) {
|
|
97
|
+
// Add the category header
|
|
98
|
+
flattened.push({
|
|
99
|
+
item: item,
|
|
100
|
+
type: 'category-header',
|
|
101
|
+
originalItem: item
|
|
102
|
+
}); // Add all items within the category
|
|
103
|
+
|
|
104
|
+
item.items.forEach(function (subItem) {
|
|
105
|
+
flattened.push({
|
|
106
|
+
item: subItem,
|
|
107
|
+
type: 'option',
|
|
108
|
+
originalItem: item // Keep reference to parent category
|
|
109
|
+
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
} else {
|
|
113
|
+
// Regular option
|
|
114
|
+
flattened.push({
|
|
115
|
+
item: item,
|
|
116
|
+
type: 'option',
|
|
117
|
+
originalItem: item
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
return flattened;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Calculate item height based on type and size for virtualization
|
|
125
|
+
*
|
|
126
|
+
* Heights are based on the styled-components padding values:
|
|
127
|
+
* - Options (small): 5px top + 5px bottom padding + ~25px content = ~35px
|
|
128
|
+
* - Options (medium): 10px top + 10px bottom padding + ~25px content = ~45px
|
|
129
|
+
* - Categories (small): 15px top + 7px bottom padding + ~20px content = ~42px
|
|
130
|
+
* - Categories (medium): 15px top + 10px bottom padding + ~25px content = ~50px
|
|
131
|
+
* - Options with labelDetails: Add ~20px extra height
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
exports.flattenItems = flattenItems;
|
|
136
|
+
|
|
137
|
+
var getItemHeight = function getItemHeight(flattenedItem) {
|
|
138
|
+
var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'small';
|
|
139
|
+
var type = flattenedItem.type,
|
|
140
|
+
item = flattenedItem.item;
|
|
141
|
+
|
|
142
|
+
if (type === 'category-header') {
|
|
143
|
+
// Category headers are taller
|
|
144
|
+
return size === 'medium' ? 50 : 42;
|
|
145
|
+
} // Regular option
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
var baseHeight = size === 'medium' ? 45 : 35; // Check if option has labelDetails (secondary text) which adds height
|
|
149
|
+
|
|
150
|
+
var hasLabelDetails = 'labelDetails' in item && item.labelDetails;
|
|
151
|
+
return hasLabelDetails ? baseHeight + 20 : baseHeight;
|
|
152
|
+
};
|
|
76
153
|
|
|
77
|
-
exports.
|
|
154
|
+
exports.getItemHeight = getItemHeight;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/index.tsx"],"names":[],"mappings":"AASA,OAAc,EAGZ,sBAAsB,EAQvB,MAAM,OAAO,CAAC;AA2Bf,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAQ,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/index.tsx"],"names":[],"mappings":"AASA,OAAc,EAGZ,sBAAsB,EAQvB,MAAM,OAAO,CAAC;AA2Bf,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAQ,MAAM,SAAS,CAAC;AA8mBhE,QAAA,MAAM,eAAe,EAAE,sBAAsB,CAC3C,gBAAgB,EAChB,aAAa,CACS,CAAC;AAOzB,eAAe,eAAe,CAAC"}
|
|
@@ -126,7 +126,8 @@ function Combobox(props, ref) {
|
|
|
126
126
|
containerSelector = props.containerSelector,
|
|
127
127
|
pointerEvents = props.pointerEvents,
|
|
128
128
|
externalIsPopoverVisible = props.isPopoverVisible,
|
|
129
|
-
externalListRef = props.listRef
|
|
129
|
+
externalListRef = props.listRef,
|
|
130
|
+
enableVirtualization = props.enableVirtualization;
|
|
130
131
|
|
|
131
132
|
var _useCombobox = (0, _useCombobox2.default)(props),
|
|
132
133
|
getInputFieldProps = _useCombobox.getInputFieldProps,
|
|
@@ -605,7 +606,8 @@ function Combobox(props, ref) {
|
|
|
605
606
|
visible: Boolean(popoverVisibleStateToUse || loading),
|
|
606
607
|
renderOptionLabel: renderOptionLabel,
|
|
607
608
|
zIndex: zIndex,
|
|
608
|
-
pointerEvents: pointerEvents
|
|
609
|
+
pointerEvents: pointerEvents,
|
|
610
|
+
enableVirtualization: enableVirtualization
|
|
609
611
|
}));
|
|
610
612
|
}));
|
|
611
613
|
}
|
|
@@ -12,6 +12,7 @@ export interface ComboboxProps extends Omit<React.InputHTMLAttributes<ComboboxIn
|
|
|
12
12
|
clearButtonLabel?: string;
|
|
13
13
|
defaultInputValue?: string;
|
|
14
14
|
defaultValue?: string;
|
|
15
|
+
enableVirtualization?: boolean;
|
|
15
16
|
inputValue?: string;
|
|
16
17
|
isPopoverVisible?: boolean;
|
|
17
18
|
multiple?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,15 @@ export interface WizardProps extends Pick<ModalProps, 'id' | 'visible' | 'zIndex
|
|
|
12
12
|
size?: 'normal' | 'extraLarge';
|
|
13
13
|
steps: Step[];
|
|
14
14
|
activeStep: number;
|
|
15
|
-
submitButtonProps
|
|
15
|
+
submitButtonProps?: ButtonProps;
|
|
16
16
|
onCancel: NonNullable<ModalProps['onClose']>;
|
|
17
|
+
renderActions?: (context: {
|
|
18
|
+
step: Step;
|
|
19
|
+
stepIndex: number;
|
|
20
|
+
isFirstStep: boolean;
|
|
21
|
+
isLastStep: boolean;
|
|
22
|
+
defaultActions: React.ReactNode;
|
|
23
|
+
}) => React.ReactNode;
|
|
17
24
|
}
|
|
18
25
|
declare function WizardManger(props: PropsWithChildren<WizardProps>): JSX.Element;
|
|
19
26
|
declare namespace WizardManger {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Wizard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Wizard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAO1D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAa5C,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,mBAAmB,CAAC,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE;QACxB,IAAI,EAAE,IAAI,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;QACpB,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC;KACjC,KAAK,KAAK,CAAC,SAAS,CAAC;CACvB;AA8HD,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,eAQ1D;kBARQ,YAAY;;;;AAiBrB,eAAe,YAAY,CAAC"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _react =
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
|
|
10
10
|
var _breakpointObserver = require("@decisiv/breakpoint-observer");
|
|
11
11
|
|
|
@@ -31,6 +31,8 @@ var _schema = _interopRequireDefault(require("./schema"));
|
|
|
31
31
|
|
|
32
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
33
|
|
|
34
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
|
35
|
+
|
|
34
36
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
|
|
35
37
|
|
|
36
38
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
@@ -63,6 +65,7 @@ var Wizard = function Wizard(_ref) {
|
|
|
63
65
|
size = _ref$size === void 0 ? 'normal' : _ref$size,
|
|
64
66
|
steps = _ref.steps,
|
|
65
67
|
onCancel = _ref.onCancel,
|
|
68
|
+
renderActions = _ref.renderActions,
|
|
66
69
|
_ref$zIndex = _ref.zIndex,
|
|
67
70
|
zIndex = _ref$zIndex === void 0 ? 100 : _ref$zIndex;
|
|
68
71
|
var translate = (0, _useTranslations.default)();
|
|
@@ -86,6 +89,26 @@ var Wizard = function Wizard(_ref) {
|
|
|
86
89
|
var showPrevious = currentStepNumber > 1 && !!previousButtonProps;
|
|
87
90
|
var showSubmit = currentStepNumber === steps.length && !!submitButtonProps;
|
|
88
91
|
var showNext = currentStepNumber < steps.length && !showSubmit && !!nextButtonProps;
|
|
92
|
+
var defaultActions = (0, _react.useMemo)(function () {
|
|
93
|
+
return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_styles.ActionButtonsContainer, {
|
|
94
|
+
size: breakpoint
|
|
95
|
+
}, showSubmit && _react.default.createElement(_.Button, _extends({
|
|
96
|
+
text: translate('Submit', 'wizard.actions.submit')
|
|
97
|
+
}, submitButtonProps)), showNext && _react.default.createElement(_.Button, _extends({
|
|
98
|
+
text: translate('Continue', 'wizard.actions.continue'),
|
|
99
|
+
icon: _ArrowRight.default,
|
|
100
|
+
iconPosition: "right"
|
|
101
|
+
}, nextButtonProps)), showPrevious && _react.default.createElement(_.Button, _extends({
|
|
102
|
+
text: translate('Back', 'wizard.actions.back'),
|
|
103
|
+
kind: "secondary",
|
|
104
|
+
icon: _ArrowLeft.default
|
|
105
|
+
}, previousButtonProps))), _react.default.createElement(_.Button, {
|
|
106
|
+
text: translate('Cancel', 'wizard.actions.cancel'),
|
|
107
|
+
kind: "secondary",
|
|
108
|
+
variant: "ghost",
|
|
109
|
+
onClick: onCancel
|
|
110
|
+
}));
|
|
111
|
+
}, [breakpoint, showSubmit, translate, submitButtonProps, showNext, nextButtonProps, showPrevious, previousButtonProps, onCancel]);
|
|
89
112
|
return _react.default.createElement(_ResponsiveModalWrapper.default, {
|
|
90
113
|
id: id,
|
|
91
114
|
size: sizeMapping[size],
|
|
@@ -109,24 +132,13 @@ var Wizard = function Wizard(_ref) {
|
|
|
109
132
|
size: breakpoint,
|
|
110
133
|
paddingX: (_ref3 = {}, _defineProperty(_ref3, _breakpointObserver.sizes.LG, 3), _defineProperty(_ref3, _breakpointObserver.sizes.XS, 2), _ref3),
|
|
111
134
|
paddingY: 1.5
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
iconPosition: "right"
|
|
120
|
-
}, nextButtonProps)), showPrevious && _react.default.createElement(_.Button, _extends({
|
|
121
|
-
text: translate('Back', 'wizard.actions.back'),
|
|
122
|
-
kind: "secondary",
|
|
123
|
-
icon: _ArrowLeft.default
|
|
124
|
-
}, previousButtonProps))), _react.default.createElement(_.Button, {
|
|
125
|
-
text: translate('Cancel', 'wizard.actions.cancel'),
|
|
126
|
-
kind: "secondary",
|
|
127
|
-
variant: "ghost",
|
|
128
|
-
onClick: onCancel
|
|
129
|
-
}))));
|
|
135
|
+
}, renderActions ? renderActions({
|
|
136
|
+
step: currentStep,
|
|
137
|
+
stepIndex: currentStepNumber - 1,
|
|
138
|
+
isFirstStep: currentStepNumber === 1,
|
|
139
|
+
isLastStep: currentStepNumber === steps.length,
|
|
140
|
+
defaultActions: defaultActions
|
|
141
|
+
}) : defaultActions)));
|
|
130
142
|
};
|
|
131
143
|
|
|
132
144
|
function WizardManger(props) {
|
|
@@ -30,6 +30,95 @@ var render = function render(ui, options) {
|
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
describe('Wizard', function () {
|
|
33
|
+
describe('renderActions', function () {
|
|
34
|
+
describe('when not provided', function () {
|
|
35
|
+
it('renders the default action buttons', function () {
|
|
36
|
+
var steps = [{
|
|
37
|
+
title: 'First Step',
|
|
38
|
+
content: _react.default.createElement(StepContent, {
|
|
39
|
+
text: "Step 1 Content"
|
|
40
|
+
}),
|
|
41
|
+
nextButtonProps: {
|
|
42
|
+
onClick: function onClick() {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}, {
|
|
47
|
+
title: 'Second Step',
|
|
48
|
+
content: _react.default.createElement(StepContent, {
|
|
49
|
+
text: "Step 2 Content"
|
|
50
|
+
})
|
|
51
|
+
}, {
|
|
52
|
+
title: 'Third Step',
|
|
53
|
+
content: _react.default.createElement(StepContent, {
|
|
54
|
+
text: "Step 3 Content"
|
|
55
|
+
})
|
|
56
|
+
}];
|
|
57
|
+
|
|
58
|
+
var _render = render(_react.default.createElement(_.default, {
|
|
59
|
+
title: "Wizard Title",
|
|
60
|
+
visible: true,
|
|
61
|
+
activeStep: 1,
|
|
62
|
+
submitButtonProps: {
|
|
63
|
+
onClick: function onClick() {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
steps: steps
|
|
68
|
+
})),
|
|
69
|
+
getByRole = _render.getByRole;
|
|
70
|
+
|
|
71
|
+
var modal = getByRole('dialog');
|
|
72
|
+
expect(modal).toBeInTheDocument();
|
|
73
|
+
expect((0, _react2.within)(modal).getByText(/cancel/i, {
|
|
74
|
+
selector: 'button'
|
|
75
|
+
})).toBeInTheDocument();
|
|
76
|
+
expect((0, _react2.within)(modal).getByText(/continue/i, {
|
|
77
|
+
selector: 'button'
|
|
78
|
+
})).toBeInTheDocument();
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('when provided', function () {
|
|
82
|
+
it('renders the custom action buttons', function () {
|
|
83
|
+
var steps = [{
|
|
84
|
+
title: 'First Step',
|
|
85
|
+
content: _react.default.createElement(StepContent, {
|
|
86
|
+
text: "Step 1 Content"
|
|
87
|
+
})
|
|
88
|
+
}, {
|
|
89
|
+
title: 'Second Step',
|
|
90
|
+
content: _react.default.createElement(StepContent, {
|
|
91
|
+
text: "Step 2 Content"
|
|
92
|
+
})
|
|
93
|
+
}, {
|
|
94
|
+
title: 'Third Step',
|
|
95
|
+
content: _react.default.createElement(StepContent, {
|
|
96
|
+
text: "Step 3 Content"
|
|
97
|
+
})
|
|
98
|
+
}];
|
|
99
|
+
|
|
100
|
+
var _render2 = render(_react.default.createElement(_.default, {
|
|
101
|
+
title: "Wizard Title",
|
|
102
|
+
visible: true,
|
|
103
|
+
activeStep: 1,
|
|
104
|
+
submitButtonProps: {
|
|
105
|
+
onClick: function onClick() {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
steps: steps,
|
|
110
|
+
renderActions: function renderActions() {
|
|
111
|
+
return _react.default.createElement("div", null, "Custom Actions");
|
|
112
|
+
}
|
|
113
|
+
})),
|
|
114
|
+
getByRole = _render2.getByRole;
|
|
115
|
+
|
|
116
|
+
var modal = getByRole('dialog');
|
|
117
|
+
expect(modal).toBeInTheDocument();
|
|
118
|
+
expect((0, _react2.within)(modal).getByText(/custom actions/i)).toBeInTheDocument();
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
});
|
|
33
122
|
describe('size', function () {
|
|
34
123
|
describe('normal / default', function () {
|
|
35
124
|
it('renders the modal with a max-width of 650px', function () {
|
|
@@ -50,7 +139,7 @@ describe('Wizard', function () {
|
|
|
50
139
|
})
|
|
51
140
|
}];
|
|
52
141
|
|
|
53
|
-
var
|
|
142
|
+
var _render3 = render(_react.default.createElement(_.default, {
|
|
54
143
|
title: "Wizard Title",
|
|
55
144
|
visible: true,
|
|
56
145
|
activeStep: 1,
|
|
@@ -61,7 +150,7 @@ describe('Wizard', function () {
|
|
|
61
150
|
},
|
|
62
151
|
steps: steps
|
|
63
152
|
})),
|
|
64
|
-
getByRole =
|
|
153
|
+
getByRole = _render3.getByRole;
|
|
65
154
|
|
|
66
155
|
var modal = getByRole('dialog');
|
|
67
156
|
expect(modal).toHaveStyle('max-width: 650px');
|
|
@@ -86,7 +175,7 @@ describe('Wizard', function () {
|
|
|
86
175
|
})
|
|
87
176
|
}];
|
|
88
177
|
|
|
89
|
-
var
|
|
178
|
+
var _render4 = render(_react.default.createElement(_.default, {
|
|
90
179
|
title: "Wizard Title",
|
|
91
180
|
size: "extraLarge",
|
|
92
181
|
visible: true,
|
|
@@ -98,7 +187,7 @@ describe('Wizard', function () {
|
|
|
98
187
|
},
|
|
99
188
|
steps: steps
|
|
100
189
|
})),
|
|
101
|
-
getByRole =
|
|
190
|
+
getByRole = _render4.getByRole;
|
|
102
191
|
|
|
103
192
|
var modal = getByRole('dialog');
|
|
104
193
|
expect(modal).toHaveStyle("max-width: ".concat((0, _polished.rem)(_designTokens.spacing.base * 90)));
|
|
@@ -123,7 +212,7 @@ describe('Wizard', function () {
|
|
|
123
212
|
})
|
|
124
213
|
}];
|
|
125
214
|
|
|
126
|
-
var
|
|
215
|
+
var _render5 = render(_react.default.createElement(_.default, {
|
|
127
216
|
title: "Wizard Title",
|
|
128
217
|
visible: true,
|
|
129
218
|
activeStep: 1,
|
|
@@ -134,7 +223,7 @@ describe('Wizard', function () {
|
|
|
134
223
|
},
|
|
135
224
|
steps: steps
|
|
136
225
|
})),
|
|
137
|
-
getByRole =
|
|
226
|
+
getByRole = _render5.getByRole;
|
|
138
227
|
|
|
139
228
|
var modal = getByRole('dialog');
|
|
140
229
|
expect(modal).toBeInTheDocument();
|
|
@@ -161,7 +250,7 @@ describe('Wizard', function () {
|
|
|
161
250
|
})
|
|
162
251
|
}];
|
|
163
252
|
|
|
164
|
-
var
|
|
253
|
+
var _render6 = render(_react.default.createElement(_.default, {
|
|
165
254
|
title: "Wizard Title",
|
|
166
255
|
visible: true,
|
|
167
256
|
activeStep: 1,
|
|
@@ -172,7 +261,7 @@ describe('Wizard', function () {
|
|
|
172
261
|
},
|
|
173
262
|
steps: steps
|
|
174
263
|
})),
|
|
175
|
-
getByRole =
|
|
264
|
+
getByRole = _render6.getByRole;
|
|
176
265
|
|
|
177
266
|
var modal = getByRole('dialog');
|
|
178
267
|
expect(modal).toBeInTheDocument();
|
|
@@ -202,7 +291,7 @@ describe('Wizard', function () {
|
|
|
202
291
|
})
|
|
203
292
|
}];
|
|
204
293
|
|
|
205
|
-
var
|
|
294
|
+
var _render7 = render(_react.default.createElement(_.default, {
|
|
206
295
|
title: "Wizard Title",
|
|
207
296
|
visible: true,
|
|
208
297
|
activeStep: activeStep,
|
|
@@ -213,7 +302,7 @@ describe('Wizard', function () {
|
|
|
213
302
|
},
|
|
214
303
|
steps: steps
|
|
215
304
|
})),
|
|
216
|
-
getByRole =
|
|
305
|
+
getByRole = _render7.getByRole;
|
|
217
306
|
|
|
218
307
|
var modal = getByRole('dialog');
|
|
219
308
|
expect(modal).toBeInTheDocument();
|
|
@@ -242,7 +331,7 @@ describe('Wizard', function () {
|
|
|
242
331
|
})
|
|
243
332
|
}];
|
|
244
333
|
|
|
245
|
-
var
|
|
334
|
+
var _render8 = render(_react.default.createElement(_.default, {
|
|
246
335
|
title: "Wizard Title",
|
|
247
336
|
visible: true,
|
|
248
337
|
onCancel: onCancelMock,
|
|
@@ -254,7 +343,7 @@ describe('Wizard', function () {
|
|
|
254
343
|
},
|
|
255
344
|
steps: steps
|
|
256
345
|
})),
|
|
257
|
-
getByRole =
|
|
346
|
+
getByRole = _render8.getByRole;
|
|
258
347
|
|
|
259
348
|
var modal = getByRole('dialog');
|
|
260
349
|
expect(modal).toBeInTheDocument();
|
|
@@ -285,7 +374,7 @@ describe('Wizard', function () {
|
|
|
285
374
|
})
|
|
286
375
|
}];
|
|
287
376
|
|
|
288
|
-
var
|
|
377
|
+
var _render9 = render(_react.default.createElement(_.default, {
|
|
289
378
|
title: "Wizard Title",
|
|
290
379
|
visible: true,
|
|
291
380
|
activeStep: 1,
|
|
@@ -296,7 +385,7 @@ describe('Wizard', function () {
|
|
|
296
385
|
},
|
|
297
386
|
steps: steps
|
|
298
387
|
})),
|
|
299
|
-
getByRole =
|
|
388
|
+
getByRole = _render9.getByRole;
|
|
300
389
|
|
|
301
390
|
var modal = getByRole('dialog');
|
|
302
391
|
expect(modal).toBeInTheDocument();
|
|
@@ -327,7 +416,7 @@ describe('Wizard', function () {
|
|
|
327
416
|
}
|
|
328
417
|
}];
|
|
329
418
|
|
|
330
|
-
var
|
|
419
|
+
var _render10 = render(_react.default.createElement(_.default, {
|
|
331
420
|
title: "Wizard Title",
|
|
332
421
|
visible: true,
|
|
333
422
|
activeStep: steps.length,
|
|
@@ -338,7 +427,7 @@ describe('Wizard', function () {
|
|
|
338
427
|
},
|
|
339
428
|
steps: steps
|
|
340
429
|
})),
|
|
341
|
-
getByRole =
|
|
430
|
+
getByRole = _render10.getByRole;
|
|
342
431
|
|
|
343
432
|
var modal = getByRole('dialog');
|
|
344
433
|
expect(modal).toBeInTheDocument();
|
|
@@ -371,7 +460,7 @@ describe('Wizard', function () {
|
|
|
371
460
|
})
|
|
372
461
|
}];
|
|
373
462
|
it('calls the onClick from the continueProps of the active step', function () {
|
|
374
|
-
var
|
|
463
|
+
var _render11 = render(_react.default.createElement(_.default, {
|
|
375
464
|
title: "Wizard Title",
|
|
376
465
|
visible: true,
|
|
377
466
|
activeStep: 1,
|
|
@@ -382,7 +471,7 @@ describe('Wizard', function () {
|
|
|
382
471
|
},
|
|
383
472
|
steps: steps
|
|
384
473
|
})),
|
|
385
|
-
getByRole =
|
|
474
|
+
getByRole = _render11.getByRole;
|
|
386
475
|
|
|
387
476
|
var modal = getByRole('dialog');
|
|
388
477
|
expect(modal).toBeInTheDocument();
|
|
@@ -421,7 +510,7 @@ describe('Wizard', function () {
|
|
|
421
510
|
})
|
|
422
511
|
}];
|
|
423
512
|
|
|
424
|
-
var
|
|
513
|
+
var _render12 = render(_react.default.createElement(_.default, {
|
|
425
514
|
title: "Wizard Title",
|
|
426
515
|
visible: true,
|
|
427
516
|
activeStep: 2,
|
|
@@ -432,7 +521,7 @@ describe('Wizard', function () {
|
|
|
432
521
|
},
|
|
433
522
|
steps: steps
|
|
434
523
|
})),
|
|
435
|
-
getByRole =
|
|
524
|
+
getByRole = _render12.getByRole;
|
|
436
525
|
|
|
437
526
|
var modal = getByRole('dialog');
|
|
438
527
|
expect(modal).toBeInTheDocument();
|
|
@@ -463,7 +552,7 @@ describe('Wizard', function () {
|
|
|
463
552
|
})
|
|
464
553
|
}];
|
|
465
554
|
|
|
466
|
-
var
|
|
555
|
+
var _render13 = render(_react.default.createElement(_.default, {
|
|
467
556
|
title: "Wizard Title",
|
|
468
557
|
visible: true,
|
|
469
558
|
activeStep: 1,
|
|
@@ -474,7 +563,7 @@ describe('Wizard', function () {
|
|
|
474
563
|
},
|
|
475
564
|
steps: steps
|
|
476
565
|
})),
|
|
477
|
-
getByRole =
|
|
566
|
+
getByRole = _render13.getByRole;
|
|
478
567
|
|
|
479
568
|
var modal = getByRole('dialog');
|
|
480
569
|
expect(modal).toBeInTheDocument();
|
|
@@ -508,7 +597,7 @@ describe('Wizard', function () {
|
|
|
508
597
|
}
|
|
509
598
|
}];
|
|
510
599
|
it('calls the onClick from the continueProps of the active step', function () {
|
|
511
|
-
var
|
|
600
|
+
var _render14 = render(_react.default.createElement(_.default, {
|
|
512
601
|
title: "Wizard Title",
|
|
513
602
|
visible: true,
|
|
514
603
|
activeStep: 2,
|
|
@@ -519,7 +608,7 @@ describe('Wizard', function () {
|
|
|
519
608
|
},
|
|
520
609
|
steps: steps
|
|
521
610
|
})),
|
|
522
|
-
getByRole =
|
|
611
|
+
getByRole = _render14.getByRole;
|
|
523
612
|
|
|
524
613
|
var modal = getByRole('dialog');
|
|
525
614
|
expect(modal).toBeInTheDocument();
|
|
@@ -554,7 +643,7 @@ describe('Wizard', function () {
|
|
|
554
643
|
it('doesnt render if im not in the last step', function () {
|
|
555
644
|
var submitCallbackMock = jest.fn();
|
|
556
645
|
|
|
557
|
-
var
|
|
646
|
+
var _render15 = render(_react.default.createElement(_.default, {
|
|
558
647
|
title: "Wizard Title",
|
|
559
648
|
visible: true,
|
|
560
649
|
activeStep: 1,
|
|
@@ -563,7 +652,7 @@ describe('Wizard', function () {
|
|
|
563
652
|
},
|
|
564
653
|
steps: steps
|
|
565
654
|
})),
|
|
566
|
-
getByRole =
|
|
655
|
+
getByRole = _render15.getByRole;
|
|
567
656
|
|
|
568
657
|
var modal = getByRole('dialog');
|
|
569
658
|
expect((0, _react2.within)(modal).queryByText(/submit/i)).not.toBeInTheDocument();
|
|
@@ -571,7 +660,7 @@ describe('Wizard', function () {
|
|
|
571
660
|
it('renders if im in the last step', function () {
|
|
572
661
|
var submitCallbackMock = jest.fn();
|
|
573
662
|
|
|
574
|
-
var
|
|
663
|
+
var _render16 = render(_react.default.createElement(_.default, {
|
|
575
664
|
title: "Wizard Title",
|
|
576
665
|
visible: true,
|
|
577
666
|
activeStep: steps.length,
|
|
@@ -580,7 +669,7 @@ describe('Wizard', function () {
|
|
|
580
669
|
},
|
|
581
670
|
steps: steps
|
|
582
671
|
})),
|
|
583
|
-
getByRole =
|
|
672
|
+
getByRole = _render16.getByRole;
|
|
584
673
|
|
|
585
674
|
var modal = getByRole('dialog');
|
|
586
675
|
expect((0, _react2.within)(modal).getByText(/submit/i)).toBeInTheDocument();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Wizard/schema.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,KAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Wizard/schema.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,KAAsC,CAAC;AAgDnD,eAAe,MAAM,CAAC"}
|
|
@@ -23,15 +23,16 @@ schema.propTypes = {
|
|
|
23
23
|
title: _reactDesc.PropTypes.string.isRequired,
|
|
24
24
|
content: _reactDesc.PropTypes.node.isRequired,
|
|
25
25
|
previousButtonProps: _reactDesc.PropTypes.shape({
|
|
26
|
-
onClick: _reactDesc.PropTypes.func
|
|
26
|
+
onClick: _reactDesc.PropTypes.func
|
|
27
27
|
}),
|
|
28
28
|
nextButtonProps: _reactDesc.PropTypes.shape({
|
|
29
|
-
onClick: _reactDesc.PropTypes.func
|
|
29
|
+
onClick: _reactDesc.PropTypes.func
|
|
30
30
|
})
|
|
31
31
|
})).description('Define the steps to render in the wizard. For more info on the usage, see the Step Props table below').isRequired,
|
|
32
32
|
submitButtonProps: _reactDesc.PropTypes.shape({
|
|
33
33
|
onClick: _reactDesc.PropTypes.func.isRequired
|
|
34
|
-
}).description('the props to pass to the submit button, this button is rendered by default in the last stesp')
|
|
34
|
+
}).description('the props to pass to the submit button, this button is rendered by default in the last stesp'),
|
|
35
|
+
renderActions: _reactDesc.PropTypes.func.description('Function to render custom action buttons. It receives an object with the current step, step index, isFirstStep, isLastStep and the default actions as parameters')
|
|
35
36
|
};
|
|
36
37
|
var _default = schema;
|
|
37
38
|
exports.default = _default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decisiv/ui-components",
|
|
3
|
-
"version": "2.0.1-alpha.
|
|
3
|
+
"version": "2.0.1-alpha.223",
|
|
4
4
|
"description": "Decisiv's design system React components",
|
|
5
5
|
"author": "Decisiv UI Development Team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"react-beautiful-dnd": "^13.0.0",
|
|
40
40
|
"react-desc": "^4.1.2",
|
|
41
41
|
"react-popper": "^1.3.3",
|
|
42
|
+
"react-window": "^1.8.10",
|
|
42
43
|
"styled-components-modifiers": "^1.2.5",
|
|
43
44
|
"styled-theming": "^2.2.0",
|
|
44
45
|
"stylis-plugin-extra-scope": "^0.1.1"
|
|
@@ -61,6 +62,7 @@
|
|
|
61
62
|
"@types/prop-types": "^15.7.1",
|
|
62
63
|
"@types/react": "^16.8.22",
|
|
63
64
|
"@types/react-beautiful-dnd": "^13.0.0",
|
|
65
|
+
"@types/react-window": "^1.8.5",
|
|
64
66
|
"@types/styled-components": "^4.1.15",
|
|
65
67
|
"@types/styled-theming": "^2.2.2",
|
|
66
68
|
"babel-plugin-styled-components": "^1.10.6",
|