@zohodesk/dot 1.0.0-beta.270 → 1.0.0-beta.271
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/README.md +6 -0
- package/es/Drawer/Drawer.js +19 -6
- package/es/Drawer/props/defaultProps.js +2 -1
- package/es/Drawer/props/propTypes.js +2 -1
- package/es/dropdown/ToggleDropDown/ToggleDropDown.js +168 -210
- package/es/list/ListLayout/ListLayout.js +1 -1
- package/es/lookup/Lookup/Lookup.js +19 -6
- package/es/lookup/Lookup/props/defaultProps.js +2 -1
- package/es/lookup/Lookup/props/propTypes.js +2 -1
- package/lib/Drawer/Drawer.js +21 -6
- package/lib/Drawer/props/defaultProps.js +2 -1
- package/lib/Drawer/props/propTypes.js +2 -1
- package/lib/dropdown/ToggleDropDown/ToggleDropDown.js +258 -301
- package/lib/list/ListLayout/ListLayout.js +1 -1
- package/lib/lookup/Lookup/Lookup.js +21 -6
- package/lib/lookup/Lookup/props/defaultProps.js +2 -1
- package/lib/lookup/Lookup/props/propTypes.js +2 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
In this Library, we Provide Some Basic Components to Build Your Application
|
|
4
4
|
|
|
5
|
+
# 1.0.0-beta.271
|
|
6
|
+
|
|
7
|
+
- **Drawer, Lookup** - `focusScopeProps` will be served by `customProps` from now.
|
|
8
|
+
|
|
9
|
+
- **ToggleDropDown** - `FocusScope` navigation has been implemented.
|
|
10
|
+
|
|
5
11
|
# 1.0.0-beta.270
|
|
6
12
|
|
|
7
13
|
- **StatusListItem** - TickIcon Vertical position Ui issue fixed
|
package/es/Drawer/Drawer.js
CHANGED
|
@@ -150,8 +150,19 @@ export default class Drawer extends React.Component {
|
|
|
150
150
|
subDrawerChildren,
|
|
151
151
|
onBodyClick,
|
|
152
152
|
onClose,
|
|
153
|
-
needFocusScope
|
|
153
|
+
needFocusScope,
|
|
154
|
+
customProps
|
|
154
155
|
} = this.props;
|
|
156
|
+
const {
|
|
157
|
+
focusScopeProps = {}
|
|
158
|
+
} = customProps;
|
|
159
|
+
const {
|
|
160
|
+
autoFocus = true,
|
|
161
|
+
restoreFocus = true,
|
|
162
|
+
needArrowLoop = false,
|
|
163
|
+
needTabLoop = true,
|
|
164
|
+
enableEnterAction = false
|
|
165
|
+
} = focusScopeProps;
|
|
155
166
|
let childrenWithProps = React.Children.map(children, child => {
|
|
156
167
|
if (child.type === Header || child.type === Footer || child.type === Content) {
|
|
157
168
|
let {
|
|
@@ -166,7 +177,7 @@ export default class Drawer extends React.Component {
|
|
|
166
177
|
});
|
|
167
178
|
let content = /*#__PURE__*/React.createElement(Box, {
|
|
168
179
|
className: `${style.container} ${style.columns} ${style.drawerModal} ${uptoTablet ? style.mbleSize : style[size]}`,
|
|
169
|
-
"data-a11y-
|
|
180
|
+
"data-a11y-need-focus-style": "false",
|
|
170
181
|
tabindex: -1,
|
|
171
182
|
eleRef: this.createRef
|
|
172
183
|
}, /*#__PURE__*/React.createElement(Card, {
|
|
@@ -189,10 +200,12 @@ export default class Drawer extends React.Component {
|
|
|
189
200
|
flexible: true
|
|
190
201
|
}, subDrawerChildren))))) : null, needFocusScope ? /*#__PURE__*/React.createElement(FocusScope, {
|
|
191
202
|
elementRef: this.createRef,
|
|
192
|
-
autoFocus:
|
|
193
|
-
|
|
194
|
-
restoreFocus:
|
|
195
|
-
|
|
203
|
+
autoFocus: autoFocus,
|
|
204
|
+
needTabLoop: needTabLoop,
|
|
205
|
+
restoreFocus: restoreFocus,
|
|
206
|
+
needArrowLoop: needArrowLoop,
|
|
207
|
+
onClose: onClose,
|
|
208
|
+
enableEnterAction: enableEnterAction
|
|
196
209
|
}, content) : content);
|
|
197
210
|
}
|
|
198
211
|
|
|
@@ -46,5 +46,6 @@ export const Drawer_propTypes = {
|
|
|
46
46
|
subDrawerChildren: PropTypes.func,
|
|
47
47
|
subDrawerClass: PropTypes.string,
|
|
48
48
|
subDrawerSize: PropTypes.oneOf(['xsmall', 'small', 'medium']),
|
|
49
|
-
needFocusScope: PropTypes.bool
|
|
49
|
+
needFocusScope: PropTypes.bool,
|
|
50
|
+
customProps: PropTypes.object
|
|
50
51
|
};
|
|
@@ -26,13 +26,13 @@ export class ToggleDropDown extends Component {
|
|
|
26
26
|
super(props);
|
|
27
27
|
this.state = {
|
|
28
28
|
searchValue: '',
|
|
29
|
-
selectedIndex: -1,
|
|
29
|
+
// selectedIndex: -1,
|
|
30
30
|
options: props.options,
|
|
31
31
|
isFetchingOptions: false
|
|
32
32
|
};
|
|
33
33
|
this._isMounted = false;
|
|
34
|
-
this.handleChange = this.handleChange.bind(this);
|
|
35
|
-
|
|
34
|
+
this.handleChange = this.handleChange.bind(this); // this.handleKeyDown = this.handleKeyDown.bind(this);
|
|
35
|
+
|
|
36
36
|
this.onSelect = this.onSelect.bind(this);
|
|
37
37
|
this.handleTogglePopup = this.handleTogglePopup.bind(this);
|
|
38
38
|
this.showTogglePopup = this.showTogglePopup.bind(this);
|
|
@@ -40,16 +40,16 @@ export class ToggleDropDown extends Component {
|
|
|
40
40
|
this.onSearchAPI = this.onSearchAPI.bind(this);
|
|
41
41
|
this.onSearchClear = this.onSearchClear.bind(this);
|
|
42
42
|
this.handleFilterSuggestions = this.handleFilterSuggestions.bind(this);
|
|
43
|
-
this.scrollContentRef = this.scrollContentRef.bind(this);
|
|
44
|
-
|
|
43
|
+
this.scrollContentRef = this.scrollContentRef.bind(this); // this.handleMouseEnter = this.handleMouseEnter.bind(this);
|
|
44
|
+
|
|
45
45
|
this.searchInputRef = this.searchInputRef.bind(this);
|
|
46
|
-
this.itemRef = this.itemRef.bind(this);
|
|
47
|
-
|
|
48
|
-
this.handleScroll = this.handleScroll.bind(this);
|
|
49
|
-
|
|
46
|
+
this.itemRef = this.itemRef.bind(this); // this.inputRef = this.inputRef.bind(this);
|
|
47
|
+
|
|
48
|
+
this.handleScroll = this.handleScroll.bind(this); // this.getOptionsArray = this.getOptionsArray.bind(this);
|
|
49
|
+
|
|
50
50
|
this.emptySearchSVG = this.emptySearchSVG.bind(this);
|
|
51
|
-
this.getAriaId = getUniqueId(this);
|
|
52
|
-
|
|
51
|
+
this.getAriaId = getUniqueId(this); // this.getSelectedIndex = this.getSelectedIndex.bind(this);
|
|
52
|
+
|
|
53
53
|
this.handleGetNextOptions = this.handleGetNextOptions.bind(this);
|
|
54
54
|
this.handleFetchOptions = this.handleFetchOptions.bind(this);
|
|
55
55
|
}
|
|
@@ -66,11 +66,10 @@ export class ToggleDropDown extends Component {
|
|
|
66
66
|
return /*#__PURE__*/React.createElement(EmptySearch, {
|
|
67
67
|
size: "small"
|
|
68
68
|
});
|
|
69
|
-
}
|
|
69
|
+
} // inputRef(el) {
|
|
70
|
+
// this.hiddenInput = el;
|
|
71
|
+
// }
|
|
70
72
|
|
|
71
|
-
inputRef(el) {
|
|
72
|
-
this.hiddenInput = el;
|
|
73
|
-
}
|
|
74
73
|
|
|
75
74
|
itemRef(ele, index, id) {
|
|
76
75
|
this[`suggestion_${id}`] = ele;
|
|
@@ -156,26 +155,21 @@ export class ToggleDropDown extends Component {
|
|
|
156
155
|
searchValue
|
|
157
156
|
} = this.state;
|
|
158
157
|
|
|
159
|
-
if (prevProps.isPopupReady !== isPopupReady) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}
|
|
158
|
+
if (prevProps.isPopupReady !== isPopupReady) {// setTimeout(() => {
|
|
159
|
+
// isPopupReady
|
|
160
|
+
// ? isSearch
|
|
161
|
+
// ? this.searchInput.focus({ preventScroll: true })
|
|
162
|
+
// : this.hiddenInput.focus({ preventScroll: true })
|
|
163
|
+
// : this.hiddenInput.focus({ preventScroll: true });
|
|
164
|
+
// }, 10);
|
|
165
|
+
} // const optionsArr = this.getOptionsArray();
|
|
166
|
+
// const option = optionsArr[selectedIndex];
|
|
167
|
+
// const id = (option && option[idName]) || {};
|
|
168
|
+
// const selSuggestion = this[`suggestion_${id}`];
|
|
169
|
+
// if (isPopupOpen) {
|
|
170
|
+
// this.optionsContainer && scrollTo(this.optionsContainer, selSuggestion);
|
|
171
|
+
// }
|
|
170
172
|
|
|
171
|
-
const optionsArr = this.getOptionsArray();
|
|
172
|
-
const option = optionsArr[selectedIndex];
|
|
173
|
-
const id = option && option[idName] || {};
|
|
174
|
-
const selSuggestion = this[`suggestion_${id}`];
|
|
175
|
-
|
|
176
|
-
if (isPopupOpen) {
|
|
177
|
-
this.optionsContainer && scrollTo(this.optionsContainer, selSuggestion);
|
|
178
|
-
}
|
|
179
173
|
|
|
180
174
|
if (!prevProps.isPopupOpen && isPopupOpen && searchValue.length) {
|
|
181
175
|
this.onSearchClear();
|
|
@@ -207,9 +201,8 @@ export class ToggleDropDown extends Component {
|
|
|
207
201
|
onDropDownOpen && onDropDownOpen();
|
|
208
202
|
} else {
|
|
209
203
|
onDropDownClose && onDropDownClose();
|
|
210
|
-
}
|
|
204
|
+
} // this.getSelectedIndex(optionsArr);
|
|
211
205
|
|
|
212
|
-
this.getSelectedIndex(optionsArr);
|
|
213
206
|
}
|
|
214
207
|
}
|
|
215
208
|
|
|
@@ -283,139 +276,92 @@ export class ToggleDropDown extends Component {
|
|
|
283
276
|
}
|
|
284
277
|
|
|
285
278
|
return result;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
279
|
+
} // getOptionsArray() {
|
|
280
|
+
// const { searchValue } = this.state;
|
|
281
|
+
// const { isGroupDropDown, groupOptionsKey } = this.props;
|
|
282
|
+
// const options = searchValue.length ? this.handleFilterSuggestions(searchValue) : this.props.options;
|
|
283
|
+
// let optionsArr = [];
|
|
284
|
+
// if (isGroupDropDown) {
|
|
285
|
+
// for (let i = 0; i < options.length; i++) {
|
|
286
|
+
// const groupOptions = options[i][groupOptionsKey];
|
|
287
|
+
// Array.prototype.push.apply(optionsArr, groupOptions);
|
|
288
|
+
// }
|
|
289
|
+
// } else {
|
|
290
|
+
// optionsArr = options.filter((item) => !item.needDivider);
|
|
291
|
+
// }
|
|
292
|
+
// return optionsArr;
|
|
293
|
+
// }
|
|
294
|
+
// handleKeyDown(e) {
|
|
295
|
+
// const { keyCode } = e;
|
|
296
|
+
// const { selectedIndex, searchValue } = this.state;
|
|
297
|
+
// const optionsArr = this.getOptionsArray();
|
|
298
|
+
// const totalIndex = optionsArr.length;
|
|
299
|
+
// const { togglePopup, onClick, boxPosition, isPopupReady, value, keyName, idName, preventPopupClose, isSearch } =
|
|
300
|
+
// this.props;
|
|
301
|
+
// if (isPopupReady && (keyCode === 38 || keyCode === 40) && e.preventDefault) {
|
|
302
|
+
// e.preventDefault(); //prevent body scroll
|
|
303
|
+
// }
|
|
304
|
+
// if (isPopupReady) {
|
|
305
|
+
// switch (keyCode) {
|
|
306
|
+
// case 40:
|
|
307
|
+
// if (selectedIndex === totalIndex - 1) {
|
|
308
|
+
// this.setState({ selectedIndex: 0 });
|
|
309
|
+
// } else {
|
|
310
|
+
// if (selectedIndex === totalIndex - 3) {
|
|
311
|
+
// this.handleGetNextOptions();
|
|
312
|
+
// }
|
|
313
|
+
// this.setState({
|
|
314
|
+
// selectedIndex: selectedIndex + 1
|
|
315
|
+
// });
|
|
316
|
+
// }
|
|
317
|
+
// break;
|
|
318
|
+
// case 38:
|
|
319
|
+
// if (selectedIndex === 0) {
|
|
320
|
+
// this.setState({ selectedIndex: totalIndex - 1 });
|
|
321
|
+
// } else {
|
|
322
|
+
// this.setState({
|
|
323
|
+
// selectedIndex: selectedIndex - 1
|
|
324
|
+
// });
|
|
325
|
+
// }
|
|
326
|
+
// break;
|
|
327
|
+
// case 13: {
|
|
328
|
+
// const selectedId = optionsArr[selectedIndex][idName] || '';
|
|
329
|
+
// onClick && onClick(selectedId, optionsArr[selectedIndex]);
|
|
330
|
+
// if (!preventPopupClose) {
|
|
331
|
+
// togglePopup(e, boxPosition);
|
|
332
|
+
// } else if (isSearch) {
|
|
333
|
+
// this.searchInput.focus({ preventScroll: true });
|
|
334
|
+
// } else {
|
|
335
|
+
// this.hiddenInput.focus({ preventScroll: true });
|
|
336
|
+
// }
|
|
337
|
+
// break;
|
|
338
|
+
// }
|
|
339
|
+
// }
|
|
340
|
+
// } else {
|
|
341
|
+
// if (keyCode === 13 || keyCode === 40) {
|
|
342
|
+
// togglePopup(e, boxPosition);
|
|
343
|
+
// }
|
|
344
|
+
// }
|
|
345
|
+
// }
|
|
346
|
+
// getSelectedIndex(optionsArr) {
|
|
347
|
+
// const { selectedId, idName } = this.props;
|
|
348
|
+
// if (selectedId) {
|
|
349
|
+
// for (let i = 0; i < optionsArr.length; i++) {
|
|
350
|
+
// const indexId = optionsArr[i][idName];
|
|
351
|
+
// if (selectedId === indexId) {
|
|
352
|
+
// this.setState({
|
|
353
|
+
// selectedIndex: i
|
|
354
|
+
// });
|
|
355
|
+
// break;
|
|
356
|
+
// }
|
|
357
|
+
// }
|
|
358
|
+
// } else {
|
|
359
|
+
// this.setState({
|
|
360
|
+
// selectedIndex: -1
|
|
361
|
+
// });
|
|
362
|
+
// }
|
|
363
|
+
// }
|
|
332
364
|
|
|
333
|
-
if (isPopupReady && (keyCode === 38 || keyCode === 40) && e.preventDefault) {
|
|
334
|
-
e.preventDefault(); //prevent body scroll
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
if (isPopupReady) {
|
|
338
|
-
switch (keyCode) {
|
|
339
|
-
case 40:
|
|
340
|
-
if (selectedIndex === totalIndex - 1) {
|
|
341
|
-
this.setState({
|
|
342
|
-
selectedIndex: 0
|
|
343
|
-
});
|
|
344
|
-
} else {
|
|
345
|
-
if (selectedIndex === totalIndex - 3) {
|
|
346
|
-
this.handleGetNextOptions();
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
this.setState({
|
|
350
|
-
selectedIndex: selectedIndex + 1
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
break;
|
|
355
|
-
|
|
356
|
-
case 38:
|
|
357
|
-
if (selectedIndex === 0) {
|
|
358
|
-
this.setState({
|
|
359
|
-
selectedIndex: totalIndex - 1
|
|
360
|
-
});
|
|
361
|
-
} else {
|
|
362
|
-
this.setState({
|
|
363
|
-
selectedIndex: selectedIndex - 1
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
break;
|
|
368
|
-
|
|
369
|
-
case 13:
|
|
370
|
-
{
|
|
371
|
-
const selectedId = optionsArr[selectedIndex][idName] || '';
|
|
372
|
-
onClick && onClick(selectedId, optionsArr[selectedIndex]);
|
|
373
|
-
|
|
374
|
-
if (!preventPopupClose) {
|
|
375
|
-
togglePopup(e, boxPosition);
|
|
376
|
-
} else if (isSearch) {
|
|
377
|
-
this.searchInput.focus({
|
|
378
|
-
preventScroll: true
|
|
379
|
-
});
|
|
380
|
-
} else {
|
|
381
|
-
this.hiddenInput.focus({
|
|
382
|
-
preventScroll: true
|
|
383
|
-
});
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
break;
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
} else {
|
|
390
|
-
if (keyCode === 13 || keyCode === 40) {
|
|
391
|
-
togglePopup(e, boxPosition);
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
getSelectedIndex(optionsArr) {
|
|
397
|
-
const {
|
|
398
|
-
selectedId,
|
|
399
|
-
idName
|
|
400
|
-
} = this.props;
|
|
401
|
-
|
|
402
|
-
if (selectedId) {
|
|
403
|
-
for (let i = 0; i < optionsArr.length; i++) {
|
|
404
|
-
const indexId = optionsArr[i][idName];
|
|
405
|
-
|
|
406
|
-
if (selectedId === indexId) {
|
|
407
|
-
this.setState({
|
|
408
|
-
selectedIndex: i
|
|
409
|
-
});
|
|
410
|
-
break;
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
} else {
|
|
414
|
-
this.setState({
|
|
415
|
-
selectedIndex: -1
|
|
416
|
-
});
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
365
|
|
|
420
366
|
onSearchAPI() {
|
|
421
367
|
const {
|
|
@@ -435,7 +381,7 @@ export class ToggleDropDown extends Component {
|
|
|
435
381
|
const filteredOptions = this.handleFilterSuggestions(value);
|
|
436
382
|
this.setState({
|
|
437
383
|
searchValue: value,
|
|
438
|
-
selectedIndex: -1,
|
|
384
|
+
// selectedIndex: -1,
|
|
439
385
|
options: filteredOptions
|
|
440
386
|
}, () => {
|
|
441
387
|
this.onSearchAPI();
|
|
@@ -450,13 +396,12 @@ export class ToggleDropDown extends Component {
|
|
|
450
396
|
}, () => {
|
|
451
397
|
this.onSearchAPI();
|
|
452
398
|
});
|
|
453
|
-
}
|
|
399
|
+
} // handleMouseEnter(id, value, index, e) {
|
|
400
|
+
// this.setState({
|
|
401
|
+
// selectedIndex: index
|
|
402
|
+
// });
|
|
403
|
+
// }
|
|
454
404
|
|
|
455
|
-
handleMouseEnter(id, value, index, e) {
|
|
456
|
-
this.setState({
|
|
457
|
-
selectedIndex: index
|
|
458
|
-
});
|
|
459
|
-
}
|
|
460
405
|
|
|
461
406
|
handleScroll(e) {
|
|
462
407
|
let ele = e.target;
|
|
@@ -599,8 +544,8 @@ export class ToggleDropDown extends Component {
|
|
|
599
544
|
} = this.state;
|
|
600
545
|
const commonClass = `${className ? className : ''} ${isPopupReady ? activeStyle ? activeStyle : '' : ''} ${isDisabled ? CssProvider('isDisable') : isReadOnly || !isEditable ? style.cursorDefault : !showOnHover ? `${style.cursor} ${hoverStyle ? hoverStyle : ''}` : `${hoverStyle ? hoverStyle : ''} ${style.cursorDefault}`}`;
|
|
601
546
|
let listIndex = -1;
|
|
602
|
-
const ariaTitleId = this.getAriaId();
|
|
603
|
-
|
|
547
|
+
const ariaTitleId = this.getAriaId(); // const allyOptionsArr = this.getOptionsArray();
|
|
548
|
+
|
|
604
549
|
return /*#__PURE__*/React.createElement("div", _extends({
|
|
605
550
|
className: style.wrapper,
|
|
606
551
|
onMouseEnter: showOnHover && !isDisabled && !isReadOnly && isEditable ? this.showTogglePopup : undefined,
|
|
@@ -613,15 +558,7 @@ export class ToggleDropDown extends Component {
|
|
|
613
558
|
align: "vertical",
|
|
614
559
|
isCover: false,
|
|
615
560
|
dataId: dataId
|
|
616
|
-
}, /*#__PURE__*/React.createElement(
|
|
617
|
-
className: style.hiddenInput
|
|
618
|
-
}, /*#__PURE__*/React.createElement("input", {
|
|
619
|
-
type: "text",
|
|
620
|
-
ref: this.inputRef,
|
|
621
|
-
onKeyDown: this.handleKeyDown,
|
|
622
|
-
tabIndex: "-1",
|
|
623
|
-
className: style.hiddenInputElement
|
|
624
|
-
})), children ? isToggleStateNeeded ? /*#__PURE__*/React.createElement(Component, _extends({}, componentProps, {
|
|
561
|
+
}, children ? isToggleStateNeeded ? /*#__PURE__*/React.createElement(Component, _extends({}, componentProps, {
|
|
625
562
|
isActive: isPopupOpen
|
|
626
563
|
})) : children : /*#__PURE__*/React.createElement(RippleEffect, {
|
|
627
564
|
hoverType: hoverType,
|
|
@@ -685,21 +622,37 @@ export class ToggleDropDown extends Component {
|
|
|
685
622
|
ariaLabelledby: !isSearch ? ariaTitleId : undefined
|
|
686
623
|
},
|
|
687
624
|
palette: palette,
|
|
688
|
-
isResponsivePadding: true
|
|
689
|
-
|
|
625
|
+
isResponsivePadding: true,
|
|
626
|
+
needFocusScope: true,
|
|
627
|
+
customProps: {
|
|
628
|
+
focusScopeProps: {
|
|
629
|
+
loadNextOptions: this.handleGetNextOptions,
|
|
630
|
+
searchValue: searchValue,
|
|
631
|
+
isFetchingOptions: isFetchingOptions
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
}, DropBoxProps, {
|
|
635
|
+
onClose: this.handleTogglePopup
|
|
636
|
+
}), /*#__PURE__*/React.createElement(React.Fragment, null, isSearch ? /*#__PURE__*/React.createElement(Box, {
|
|
690
637
|
className: style.search
|
|
691
638
|
}, /*#__PURE__*/React.createElement(TextBoxIcon, _extends({
|
|
692
639
|
placeHolder: placeHolderText,
|
|
693
640
|
onChange: this.handleChange,
|
|
694
641
|
value: searchValue,
|
|
695
642
|
onClear: this.onSearchClear,
|
|
696
|
-
size: searchBoxSize
|
|
697
|
-
|
|
698
|
-
|
|
643
|
+
size: searchBoxSize // inputRef={this.searchInputRef}
|
|
644
|
+
,
|
|
645
|
+
customProps: {
|
|
646
|
+
TextBoxProps: {
|
|
647
|
+
'data-a11y-autofocus': true
|
|
648
|
+
}
|
|
649
|
+
} //search
|
|
650
|
+
// onKeyDown={this.handleKeyDown}
|
|
651
|
+
,
|
|
699
652
|
a11y: {
|
|
700
653
|
role: 'combobox',
|
|
701
654
|
ariaOwns: ariaTitleId,
|
|
702
|
-
ariaActivedescendant: allyOptionsArr[selectedIndex] && allyOptionsArr[selectedIndex][keyName],
|
|
655
|
+
// ariaActivedescendant: allyOptionsArr[selectedIndex] && allyOptionsArr[selectedIndex][keyName],
|
|
703
656
|
ariaAutocomplete: 'list',
|
|
704
657
|
ariaHaspopup: true,
|
|
705
658
|
ariaExpanded: true
|
|
@@ -724,8 +677,9 @@ export class ToggleDropDown extends Component {
|
|
|
724
677
|
className: `${tabletMode ? style.responsivemaxHgt : style.maxHgt} ${customListBox}`,
|
|
725
678
|
eleRef: this.scrollContentRef,
|
|
726
679
|
onScroll: this.handleScroll,
|
|
727
|
-
role: isSearch ? 'listbox' :
|
|
728
|
-
"aria-labelledby": isSearch ? ariaTitleId : undefined
|
|
680
|
+
role: isSearch ? 'listbox' : 'menu',
|
|
681
|
+
"aria-labelledby": isSearch ? ariaTitleId : undefined,
|
|
682
|
+
"data-scroll": "true"
|
|
729
683
|
}, isDataLoaded ? options && options.length != 0 ? isGroupDropDown ? /*#__PURE__*/React.createElement(React.Fragment, null, options.map(group => {
|
|
730
684
|
const groupName = group[groupNameKey];
|
|
731
685
|
const groupOptions = group[groupOptionsKey];
|
|
@@ -761,20 +715,21 @@ export class ToggleDropDown extends Component {
|
|
|
761
715
|
id: item[idName],
|
|
762
716
|
active: selectedId === item[idName],
|
|
763
717
|
onClick: this.onSelect.bind(this, item),
|
|
764
|
-
index: listIndex
|
|
765
|
-
|
|
718
|
+
index: listIndex // highlight={selectedIndex === listIndex}
|
|
719
|
+
,
|
|
766
720
|
disableTitle: disableTitle,
|
|
767
721
|
isDisabled: isDisabled,
|
|
768
722
|
iconName: iconName,
|
|
769
723
|
iconClass: iconClass,
|
|
770
724
|
iconSize: iconSize,
|
|
771
725
|
needTick: needTick,
|
|
772
|
-
needBorder: false
|
|
773
|
-
|
|
726
|
+
needBorder: false // onMouseEnter={this.handleMouseEnter}
|
|
727
|
+
,
|
|
774
728
|
getRef: this.itemRef,
|
|
775
729
|
title: title ? title : item[keyName],
|
|
776
730
|
palette: palette,
|
|
777
731
|
needMultiLineText: needMultiLineText,
|
|
732
|
+
autoHover: true,
|
|
778
733
|
a11y: {
|
|
779
734
|
role: isSearch ? 'option' : 'menuitem',
|
|
780
735
|
ariaSelected: selectedId === item[idName],
|
|
@@ -789,15 +744,16 @@ export class ToggleDropDown extends Component {
|
|
|
789
744
|
onClick: this.onSelect.bind(this, item),
|
|
790
745
|
isDisabled: isDisabled,
|
|
791
746
|
disableTitle: disableTitle,
|
|
792
|
-
index: listIndex
|
|
793
|
-
|
|
747
|
+
index: listIndex // highlight={selectedIndex === listIndex}
|
|
748
|
+
,
|
|
794
749
|
needTick: needTick,
|
|
795
|
-
needBorder: false
|
|
796
|
-
|
|
750
|
+
needBorder: false // onMouseEnter={this.handleMouseEnter}
|
|
751
|
+
,
|
|
797
752
|
getRef: this.itemRef,
|
|
798
753
|
title: title ? title : item[keyName],
|
|
799
754
|
palette: palette,
|
|
800
755
|
needMultiLineText: needMultiLineText,
|
|
756
|
+
autoHover: true,
|
|
801
757
|
a11y: {
|
|
802
758
|
role: isSearch ? 'option' : 'menuitem',
|
|
803
759
|
ariaSelected: selectedId === item[idName],
|
|
@@ -835,19 +791,20 @@ export class ToggleDropDown extends Component {
|
|
|
835
791
|
onClick: this.onSelect.bind(this, item),
|
|
836
792
|
index: listIndex,
|
|
837
793
|
disableTitle: disableTitle,
|
|
838
|
-
isDisabled: isDisabled
|
|
839
|
-
|
|
794
|
+
isDisabled: isDisabled // highlight={selectedIndex === listIndex}
|
|
795
|
+
,
|
|
840
796
|
iconName: iconName,
|
|
841
797
|
iconClass: iconClass,
|
|
842
798
|
iconSize: iconSize,
|
|
843
799
|
needTick: needTick,
|
|
844
|
-
needBorder: false
|
|
845
|
-
|
|
800
|
+
needBorder: false // onMouseEnter={this.handleMouseEnter}
|
|
801
|
+
,
|
|
846
802
|
getRef: this.itemRef,
|
|
847
803
|
title: title ? title : item[keyName],
|
|
848
804
|
key: listIndex,
|
|
849
805
|
palette: palette,
|
|
850
806
|
needMultiLineText: needMultiLineText,
|
|
807
|
+
autoHover: true,
|
|
851
808
|
a11y: {
|
|
852
809
|
role: isSearch ? 'option' : 'menuitem',
|
|
853
810
|
ariaSelected: selectedId === item[idName],
|
|
@@ -862,15 +819,16 @@ export class ToggleDropDown extends Component {
|
|
|
862
819
|
isDisabled: isDisabled,
|
|
863
820
|
active: selectedId === item[idName],
|
|
864
821
|
onClick: this.onSelect.bind(this, item),
|
|
865
|
-
index: listIndex
|
|
866
|
-
|
|
822
|
+
index: listIndex // highlight={selectedIndex === listIndex}
|
|
823
|
+
,
|
|
867
824
|
needTick: needTick,
|
|
868
|
-
needBorder: false
|
|
869
|
-
|
|
825
|
+
needBorder: false // onMouseEnter={this.handleMouseEnter}
|
|
826
|
+
,
|
|
870
827
|
getRef: this.itemRef,
|
|
871
828
|
title: title ? title : item[keyName],
|
|
872
829
|
palette: palette,
|
|
873
830
|
needMultiLineText: needMultiLineText,
|
|
831
|
+
autoHover: true,
|
|
874
832
|
a11y: {
|
|
875
833
|
role: isSearch ? 'option' : 'menuitem',
|
|
876
834
|
ariaSelected: selectedId === item[idName],
|
|
@@ -45,7 +45,7 @@ export default class ListLayout extends Component {
|
|
|
45
45
|
"data-title": dataTitle,
|
|
46
46
|
tabIndex: "0",
|
|
47
47
|
role: role,
|
|
48
|
-
"data-a11y-
|
|
48
|
+
"data-a11y-inset-focus": true,
|
|
49
49
|
"aria-label": ariaLabel,
|
|
50
50
|
"aria-setsize": ariaSetsize,
|
|
51
51
|
"aria-posinset": ariaPosinset
|
|
@@ -53,7 +53,8 @@ export default class Lookup extends Component {
|
|
|
53
53
|
a11y,
|
|
54
54
|
childAnimationName,
|
|
55
55
|
onClose,
|
|
56
|
-
needFocusScope
|
|
56
|
+
needFocusScope,
|
|
57
|
+
customProps
|
|
57
58
|
} = this.props;
|
|
58
59
|
const {
|
|
59
60
|
role = 'dialog',
|
|
@@ -61,10 +62,20 @@ export default class Lookup extends Component {
|
|
|
61
62
|
ariaDescribedby,
|
|
62
63
|
ariaModal = isActive ? true : undefined
|
|
63
64
|
} = a11y;
|
|
65
|
+
const {
|
|
66
|
+
focusScopeProps = {}
|
|
67
|
+
} = customProps;
|
|
68
|
+
const {
|
|
69
|
+
autoFocus = true,
|
|
70
|
+
restoreFocus = true,
|
|
71
|
+
needArrowLoop = false,
|
|
72
|
+
needTabLoop = true,
|
|
73
|
+
enableEnterAction = false
|
|
74
|
+
} = focusScopeProps;
|
|
64
75
|
const content = /*#__PURE__*/React.createElement("div", {
|
|
65
76
|
ref: this.createRef,
|
|
66
77
|
tabIndex: "-1",
|
|
67
|
-
"data-a11y-
|
|
78
|
+
"data-a11y-need-focus-style": "false",
|
|
68
79
|
role: role,
|
|
69
80
|
"aria-labelledby": ariaLabelledby,
|
|
70
81
|
"aria-describedby": ariaDescribedby,
|
|
@@ -88,11 +99,13 @@ export default class Lookup extends Component {
|
|
|
88
99
|
className: style.container,
|
|
89
100
|
dataId: "fldValue"
|
|
90
101
|
}, needFocusScope ? /*#__PURE__*/React.createElement(FocusScope, {
|
|
91
|
-
|
|
102
|
+
needTabLoop: needTabLoop,
|
|
103
|
+
needArrowLoop: needArrowLoop,
|
|
92
104
|
elementRef: this.createRef,
|
|
93
|
-
autoFocus:
|
|
94
|
-
restoreFocus:
|
|
95
|
-
|
|
105
|
+
autoFocus: autoFocus,
|
|
106
|
+
restoreFocus: restoreFocus,
|
|
107
|
+
onClose: onClose,
|
|
108
|
+
enableEnterAction: enableEnterAction
|
|
96
109
|
}, content) : content));
|
|
97
110
|
}
|
|
98
111
|
|