@react-aria/selection 3.0.0-alpha.1 → 3.0.0-nightly-4980928d3-240906

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.
Files changed (53) hide show
  1. package/README.md +1 -1
  2. package/dist/DOMLayoutDelegate.main.js +53 -0
  3. package/dist/DOMLayoutDelegate.main.js.map +1 -0
  4. package/dist/DOMLayoutDelegate.mjs +48 -0
  5. package/dist/DOMLayoutDelegate.module.js +48 -0
  6. package/dist/DOMLayoutDelegate.module.js.map +1 -0
  7. package/dist/ListKeyboardDelegate.main.js +189 -0
  8. package/dist/ListKeyboardDelegate.main.js.map +1 -0
  9. package/dist/ListKeyboardDelegate.mjs +184 -0
  10. package/dist/ListKeyboardDelegate.module.js +184 -0
  11. package/dist/ListKeyboardDelegate.module.js.map +1 -0
  12. package/dist/import.mjs +27 -0
  13. package/dist/main.js +16 -608
  14. package/dist/main.js.map +1 -0
  15. package/dist/module.js +9 -563
  16. package/dist/module.js.map +1 -0
  17. package/dist/types.d.ts +218 -30
  18. package/dist/types.d.ts.map +1 -1
  19. package/dist/useSelectableCollection.main.js +318 -0
  20. package/dist/useSelectableCollection.main.js.map +1 -0
  21. package/dist/useSelectableCollection.mjs +313 -0
  22. package/dist/useSelectableCollection.module.js +313 -0
  23. package/dist/useSelectableCollection.module.js.map +1 -0
  24. package/dist/useSelectableItem.main.js +213 -0
  25. package/dist/useSelectableItem.main.js.map +1 -0
  26. package/dist/useSelectableItem.mjs +208 -0
  27. package/dist/useSelectableItem.module.js +208 -0
  28. package/dist/useSelectableItem.module.js.map +1 -0
  29. package/dist/useSelectableList.main.js +63 -0
  30. package/dist/useSelectableList.main.js.map +1 -0
  31. package/dist/useSelectableList.mjs +58 -0
  32. package/dist/useSelectableList.module.js +58 -0
  33. package/dist/useSelectableList.module.js.map +1 -0
  34. package/dist/useTypeSelect.main.js +73 -0
  35. package/dist/useTypeSelect.main.js.map +1 -0
  36. package/dist/useTypeSelect.mjs +68 -0
  37. package/dist/useTypeSelect.module.js +68 -0
  38. package/dist/useTypeSelect.module.js.map +1 -0
  39. package/dist/utils.main.js +32 -0
  40. package/dist/utils.main.js.map +1 -0
  41. package/dist/utils.mjs +26 -0
  42. package/dist/utils.module.js +26 -0
  43. package/dist/utils.module.js.map +1 -0
  44. package/package.json +20 -13
  45. package/src/DOMLayoutDelegate.ts +57 -0
  46. package/src/ListKeyboardDelegate.ts +288 -0
  47. package/src/index.ts +23 -0
  48. package/src/useSelectableCollection.ts +490 -0
  49. package/src/useSelectableItem.ts +374 -0
  50. package/src/useSelectableList.ts +85 -0
  51. package/src/useTypeSelect.ts +114 -0
  52. package/src/utils.ts +33 -0
  53. package/LICENSE +0 -201
package/dist/main.js CHANGED
@@ -1,399 +1,21 @@
1
- var _temp = require("react");
1
+ var $b6837c2f80a3c32f$exports = require("./useSelectableCollection.main.js");
2
+ var $433b1145b0781e10$exports = require("./useSelectableItem.main.js");
3
+ var $bd230acee196f50c$exports = require("./useSelectableList.main.js");
4
+ var $836f880b12dcae5c$exports = require("./ListKeyboardDelegate.main.js");
5
+ var $2ac4508142683dcb$exports = require("./DOMLayoutDelegate.main.js");
6
+ var $a1189052f36475e8$exports = require("./useTypeSelect.main.js");
2
7
 
3
- var useEffect = _temp.useEffect;
4
- var useRef = _temp.useRef;
5
- var useMemo = _temp.useMemo;
6
8
 
7
- var _temp2 = require("@react-aria/utils");
8
-
9
- var mergeProps = _temp2.mergeProps;
10
- var focusWithoutScrolling = _temp2.focusWithoutScrolling;
11
-
12
- var _babelRuntimeHelpersClassCallCheck = $parcel$interopDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _babelRuntimeHelpersCreateClass = $parcel$interopDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _babelRuntimeHelpersDefineProperty = $parcel$interopDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
- var useCollator = require("@react-aria/i18n").useCollator;
19
-
20
- function $parcel$interopDefault(a) {
21
- return a && a.__esModule ? a.default : a;
22
- }
23
-
24
- function useTypeSelect(options) {
25
- var keyboardDelegate = options.keyboardDelegate,
26
- selectionManager = options.selectionManager,
27
- onTypeSelect = options.onTypeSelect;
28
- var state = useRef({
29
- search: '',
30
- timeout: null
31
- }).current;
32
-
33
- var onKeyDown = function onKeyDown(e) {
34
- var character = $b843d8ac9c2b714d56acf7bb325b078e$var$getStringForKey(e.key);
35
-
36
- if (!character) {
37
- return;
38
- }
39
-
40
- state.search += character; // Use the delegate to find a key to focus.
41
- // Prioritize items after the currently focused item, falling back to searching the whole list.
42
-
43
- var key = keyboardDelegate.getKeyForSearch(state.search, selectionManager.focusedKey);
44
-
45
- if (!key) {
46
- key = keyboardDelegate.getKeyForSearch(state.search);
47
- }
48
-
49
- if (key) {
50
- selectionManager.setFocusedKey(key);
51
-
52
- if (onTypeSelect) {
53
- onTypeSelect(key);
54
- }
55
- }
56
-
57
- clearTimeout(state.timeout);
58
- state.timeout = setTimeout(function () {
59
- state.search = '';
60
- }, 500);
61
- };
62
-
63
- return {
64
- typeSelectProps: {
65
- onKeyDown: keyboardDelegate.getKeyForSearch ? onKeyDown : null
66
- }
67
- };
9
+ function $parcel$export(e, n, v, s) {
10
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
68
11
  }
69
12
 
70
- exports.useTypeSelect = useTypeSelect;
71
-
72
- function $b843d8ac9c2b714d56acf7bb325b078e$var$getStringForKey(key) {
73
- // If the key is of length 1, it is an ASCII value.
74
- // Otherwise, if there are no ASCII characters in the key name,
75
- // it is a Unicode character.
76
- // See https://www.w3.org/TR/uievents-key/
77
- if (key.length === 1 || !/^[A-Z]/i.test(key)) {
78
- return key;
79
- }
80
-
81
- return '';
82
- }
83
-
84
- var $f6850b13dba63fef3157aa366dff950$var$isMac = typeof window !== 'undefined' && window.navigator != null ? /^Mac/.test(window.navigator.platform) : false;
85
-
86
- function $f6850b13dba63fef3157aa366dff950$var$isCtrlKeyPressed(e) {
87
- if ($f6850b13dba63fef3157aa366dff950$var$isMac) {
88
- return e.metaKey;
89
- }
90
-
91
- return e.ctrlKey;
92
- }
93
-
94
- function useSelectableCollection(options) {
95
- var manager = options.selectionManager,
96
- delegate = options.keyboardDelegate,
97
- _options$autoFocus = options.autoFocus,
98
- autoFocus = _options$autoFocus === void 0 ? false : _options$autoFocus,
99
- _options$shouldFocusW = options.shouldFocusWrap,
100
- shouldFocusWrap = _options$shouldFocusW === void 0 ? false : _options$shouldFocusW,
101
- _options$disallowEmpt = options.disallowEmptySelection,
102
- disallowEmptySelection = _options$disallowEmpt === void 0 ? false : _options$disallowEmpt,
103
- _options$disallowSele = options.disallowSelectAll,
104
- disallowSelectAll = _options$disallowSele === void 0 ? false : _options$disallowSele;
105
-
106
- var onKeyDown = function onKeyDown(e) {
107
- switch (e.key) {
108
- case 'ArrowDown':
109
- {
110
- if (delegate.getKeyBelow) {
111
- e.preventDefault();
112
- var nextKey = delegate.getKeyBelow(manager.focusedKey);
113
-
114
- if (nextKey) {
115
- manager.setFocusedKey(nextKey);
116
- } else if (shouldFocusWrap) {
117
- manager.setFocusedKey(delegate.getFirstKey());
118
- }
119
-
120
- if (e.shiftKey && manager.selectionMode === 'multiple') {
121
- manager.extendSelection(nextKey);
122
- }
123
- }
124
-
125
- break;
126
- }
127
-
128
- case 'ArrowUp':
129
- {
130
- if (delegate.getKeyAbove) {
131
- e.preventDefault();
132
-
133
- var _nextKey = delegate.getKeyAbove(manager.focusedKey);
134
-
135
- if (_nextKey) {
136
- manager.setFocusedKey(_nextKey);
137
- } else if (shouldFocusWrap) {
138
- manager.setFocusedKey(delegate.getLastKey());
139
- }
140
-
141
- if (e.shiftKey && manager.selectionMode === 'multiple') {
142
- manager.extendSelection(_nextKey);
143
- }
144
- }
145
-
146
- break;
147
- }
148
-
149
- case 'ArrowLeft':
150
- {
151
- if (delegate.getKeyLeftOf) {
152
- e.preventDefault();
153
-
154
- var _nextKey2 = delegate.getKeyLeftOf(manager.focusedKey);
155
-
156
- if (_nextKey2) {
157
- manager.setFocusedKey(_nextKey2);
158
- }
159
-
160
- if (e.shiftKey && manager.selectionMode === 'multiple') {
161
- manager.extendSelection(_nextKey2);
162
- }
163
- }
164
-
165
- break;
166
- }
167
-
168
- case 'ArrowRight':
169
- {
170
- if (delegate.getKeyRightOf) {
171
- e.preventDefault();
172
-
173
- var _nextKey3 = delegate.getKeyRightOf(manager.focusedKey);
174
-
175
- if (_nextKey3) {
176
- manager.setFocusedKey(_nextKey3);
177
- }
178
-
179
- if (e.shiftKey && manager.selectionMode === 'multiple') {
180
- manager.extendSelection(_nextKey3);
181
- }
182
- }
183
-
184
- break;
185
- }
186
-
187
- case 'Home':
188
- if (delegate.getFirstKey) {
189
- e.preventDefault();
190
- var firstKey = delegate.getFirstKey();
191
- manager.setFocusedKey(firstKey);
192
-
193
- if ($f6850b13dba63fef3157aa366dff950$var$isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === 'multiple') {
194
- manager.extendSelection(firstKey);
195
- }
196
- }
197
-
198
- break;
199
-
200
- case 'End':
201
- if (delegate.getLastKey) {
202
- e.preventDefault();
203
- var lastKey = delegate.getLastKey();
204
- manager.setFocusedKey(lastKey);
205
-
206
- if ($f6850b13dba63fef3157aa366dff950$var$isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === 'multiple') {
207
- manager.extendSelection(lastKey);
208
- }
209
- }
210
-
211
- break;
212
-
213
- case 'PageDown':
214
- if (delegate.getKeyPageBelow) {
215
- e.preventDefault();
216
-
217
- var _nextKey4 = delegate.getKeyPageBelow(manager.focusedKey);
218
-
219
- if (_nextKey4) {
220
- manager.setFocusedKey(_nextKey4);
221
-
222
- if (e.shiftKey && manager.selectionMode === 'multiple') {
223
- manager.extendSelection(_nextKey4);
224
- }
225
- }
226
- }
227
-
228
- break;
229
-
230
- case 'PageUp':
231
- if (delegate.getKeyPageAbove) {
232
- e.preventDefault();
233
-
234
- var _nextKey5 = delegate.getKeyPageAbove(manager.focusedKey);
235
-
236
- if (_nextKey5) {
237
- manager.setFocusedKey(_nextKey5);
238
-
239
- if (e.shiftKey && manager.selectionMode === 'multiple') {
240
- manager.extendSelection(_nextKey5);
241
- }
242
- }
243
- }
244
-
245
- break;
246
-
247
- case 'a':
248
- if ($f6850b13dba63fef3157aa366dff950$var$isCtrlKeyPressed(e) && manager.selectionMode === 'multiple' && disallowSelectAll !== true) {
249
- e.preventDefault();
250
- manager.selectAll();
251
- }
252
-
253
- break;
254
-
255
- case 'Escape':
256
- e.preventDefault();
257
-
258
- if (!disallowEmptySelection) {
259
- manager.clearSelection();
260
- }
261
-
262
- break;
263
- }
264
- };
265
-
266
- var onFocus = function onFocus(e) {
267
- manager.setFocused(true);
268
-
269
- if (manager.focusedKey == null && e.target === e.currentTarget) {
270
- // If the user hasn't yet interacted with the collection, there will be no focusedKey set.
271
- // Attempt to detect whether the user is tabbing forward or backward into the collection
272
- // and either focus the first or last item accordingly.
273
- var relatedTarget = e.relatedTarget;
274
-
275
- if (relatedTarget && e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING) {
276
- manager.setFocusedKey(delegate.getLastKey());
277
- } else {
278
- manager.setFocusedKey(delegate.getFirstKey());
279
- }
280
- }
281
- };
282
-
283
- var onBlur = function onBlur() {
284
- manager.setFocused(false);
285
- };
286
-
287
- useEffect(function () {
288
- if (autoFocus) {
289
- manager.setFocused(true); // By default, select first item for focus target
290
-
291
- var focusedKey = delegate.getFirstKey();
292
- var selectedKeys = manager.selectedKeys; // Set the last item as the new focus target if autoFocus is 'last' (i.e. ArrowUp opening the menu)
293
-
294
- if (autoFocus === 'last') {
295
- focusedKey = delegate.getLastKey();
296
- } // If there are any selected keys, make the first one the new focus target
297
-
298
-
299
- if (selectedKeys.size) {
300
- focusedKey = selectedKeys.values().next().value;
301
- }
302
-
303
- manager.setFocusedKey(focusedKey);
304
- } // eslint-disable-next-line react-hooks/exhaustive-deps
305
-
306
- }, []);
307
-
308
- var _useTypeSelect = useTypeSelect({
309
- keyboardDelegate: delegate,
310
- selectionManager: manager
311
- }),
312
- typeSelectProps = _useTypeSelect.typeSelectProps;
313
-
314
- return {
315
- collectionProps: mergeProps(typeSelectProps, {
316
- onKeyDown: onKeyDown,
317
- onFocus: onFocus,
318
- onBlur: onBlur
319
- })
320
- };
321
- }
322
-
323
- exports.useSelectableCollection = useSelectableCollection;
324
-
325
- function useSelectableItem(options) {
326
- var manager = options.selectionManager,
327
- itemKey = options.itemKey,
328
- itemRef = options.itemRef,
329
- shouldSelectOnPressUp = options.shouldSelectOnPressUp,
330
- isVirtualized = options.isVirtualized;
331
-
332
- var onSelect = function onSelect(e) {
333
- if (manager.selectionMode === 'none') {
334
- return;
335
- }
336
-
337
- if (manager.selectionMode === 'single') {
338
- if (manager.selectedKeys.has(itemKey)) {
339
- manager.toggleSelection(itemKey);
340
- } else {
341
- manager.replaceSelection(itemKey);
342
- }
343
- } else if (e.shiftKey) {
344
- manager.extendSelection(itemKey);
345
- } else if (manager) {
346
- manager.toggleSelection(itemKey);
347
- }
348
- }; // Focus the associated DOM node when this item becomes the focusedKey
349
-
350
-
351
- var isFocused = itemKey === manager.focusedKey;
352
- useEffect(function () {
353
- if (isFocused && manager.isFocused && document.activeElement !== itemRef.current) {
354
- focusWithoutScrolling(itemRef.current);
355
- }
356
- }, [itemRef, isFocused, manager.focusedKey, manager.isFocused]);
357
- var itemProps = {
358
- tabIndex: isFocused ? 0 : -1,
359
- onFocus: function onFocus() {
360
- manager.setFocusedKey(itemKey);
361
- }
362
- }; // By default, selection occurs on pointer down. This can be strange if selecting an
363
- // item causes the UI to disappear immediately (e.g. menuts).
364
- // If shouldSelectOnPressUp is true, we use onPressUp instead of onPressStart.
365
- // onPress requires a pointer down event on the same element as pointer up. For menus,
366
- // we want to be able to have the pointer down on the trigger that opens the menu and
367
- // the pointer up on the menu item rather than requiring a separate press.
368
- // For keyboard events, selection still occurrs on key down.
369
-
370
- if (shouldSelectOnPressUp) {
371
- itemProps.onPressStart = function (e) {
372
- if (e.pointerType === 'keyboard') {
373
- onSelect(e);
374
- }
375
- };
376
-
377
- itemProps.onPressUp = function (e) {
378
- if (e.pointerType !== 'keyboard') {
379
- onSelect(e);
380
- }
381
- };
382
- } else {
383
- itemProps.onPressStart = onSelect;
384
- }
385
-
386
- if (!isVirtualized) {
387
- itemProps['data-key'] = itemKey;
388
- }
389
-
390
- return {
391
- itemProps: itemProps
392
- };
393
- }
394
-
395
- exports.useSelectableItem = useSelectableItem;
396
-
13
+ $parcel$export(module.exports, "useSelectableCollection", () => $b6837c2f80a3c32f$exports.useSelectableCollection);
14
+ $parcel$export(module.exports, "useSelectableItem", () => $433b1145b0781e10$exports.useSelectableItem);
15
+ $parcel$export(module.exports, "useSelectableList", () => $bd230acee196f50c$exports.useSelectableList);
16
+ $parcel$export(module.exports, "ListKeyboardDelegate", () => $836f880b12dcae5c$exports.ListKeyboardDelegate);
17
+ $parcel$export(module.exports, "DOMLayoutDelegate", () => $2ac4508142683dcb$exports.DOMLayoutDelegate);
18
+ $parcel$export(module.exports, "useTypeSelect", () => $a1189052f36475e8$exports.useTypeSelect);
397
19
  /*
398
20
  * Copyright 2020 Adobe. All rights reserved.
399
21
  * This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -404,226 +26,12 @@ exports.useSelectableItem = useSelectableItem;
404
26
  * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
405
27
  * OF ANY KIND, either express or implied. See the License for the specific language
406
28
  * governing permissions and limitations under the License.
407
- */
408
- var ListKeyboardDelegate = /*#__PURE__*/function () {
409
- function ListKeyboardDelegate(collection, ref, collator) {
410
- _babelRuntimeHelpersClassCallCheck(this, ListKeyboardDelegate);
411
-
412
- _babelRuntimeHelpersDefineProperty(this, "collection", void 0);
413
-
414
- _babelRuntimeHelpersDefineProperty(this, "ref", void 0);
415
-
416
- _babelRuntimeHelpersDefineProperty(this, "collator", void 0);
417
-
418
- this.collection = collection;
419
- this.ref = ref;
420
- this.collator = collator;
421
- }
422
-
423
- _babelRuntimeHelpersCreateClass(ListKeyboardDelegate, [{
424
- key: "getKeyBelow",
425
- value: function getKeyBelow(key) {
426
- key = this.collection.getKeyAfter(key);
427
-
428
- while (key) {
429
- var item = this.collection.getItem(key);
430
-
431
- if (item.type === 'item' && !item.isDisabled) {
432
- return key;
433
- }
434
-
435
- key = this.collection.getKeyAfter(key);
436
- }
437
- }
438
- }, {
439
- key: "getKeyAbove",
440
- value: function getKeyAbove(key) {
441
- key = this.collection.getKeyBefore(key);
442
-
443
- while (key) {
444
- var item = this.collection.getItem(key);
445
-
446
- if (item.type === 'item' && !item.isDisabled) {
447
- return key;
448
- }
449
-
450
- key = this.collection.getKeyBefore(key);
451
- }
452
- }
453
- }, {
454
- key: "getFirstKey",
455
- value: function getFirstKey() {
456
- var key = this.collection.getFirstKey();
457
-
458
- while (key) {
459
- var item = this.collection.getItem(key);
460
-
461
- if (item.type === 'item' && !item.isDisabled) {
462
- return key;
463
- }
464
-
465
- key = this.collection.getKeyAfter(key);
466
- }
467
- }
468
- }, {
469
- key: "getLastKey",
470
- value: function getLastKey() {
471
- var key = this.collection.getLastKey();
472
-
473
- while (key) {
474
- var item = this.collection.getItem(key);
475
-
476
- if (item.type === 'item' && !item.isDisabled) {
477
- return key;
478
- }
479
-
480
- key = this.collection.getKeyBefore(key);
481
- }
482
- }
483
- }, {
484
- key: "getItem",
485
- value: function getItem(key) {
486
- return this.ref.current.querySelector("[data-key=\"".concat(key, "\"]"));
487
- }
488
- }, {
489
- key: "getKeyPageAbove",
490
- value: function getKeyPageAbove(key) {
491
- var menu = this.ref.current;
492
- var item = this.getItem(key);
493
-
494
- if (!item) {
495
- return null;
496
- }
497
-
498
- var pageY = Math.max(0, item.offsetTop + item.offsetHeight - menu.offsetHeight);
499
-
500
- while (item && item.offsetTop > pageY) {
501
- key = this.getKeyAbove(key);
502
- item = this.getItem(key);
503
- }
504
-
505
- return key;
506
- }
507
- }, {
508
- key: "getKeyPageBelow",
509
- value: function getKeyPageBelow(key) {
510
- var menu = this.ref.current;
511
- var item = this.getItem(key);
512
-
513
- if (!item) {
514
- return null;
515
- }
516
-
517
- var pageY = Math.min(menu.scrollHeight, item.offsetTop - item.offsetHeight + menu.offsetHeight);
518
-
519
- while (item && item.offsetTop < pageY) {
520
- key = this.getKeyBelow(key);
521
- item = this.getItem(key);
522
- }
523
-
524
- return key;
525
- }
526
- }, {
527
- key: "getKeyForSearch",
528
- value: function getKeyForSearch(search, fromKey) {
529
- if (!this.collator) {
530
- return null;
531
- }
532
-
533
- var collection = this.collection;
534
- var key = fromKey ? this.getKeyBelow(fromKey) : this.getFirstKey();
535
-
536
- while (key) {
537
- var item = collection.getItem(key);
538
- var substring = item.textValue.slice(0, search.length);
539
-
540
- if (item.textValue && this.collator.compare(substring, search) === 0) {
541
- return key;
542
- }
543
-
544
- key = this.getKeyBelow(key);
545
- }
546
-
547
- return null;
548
- }
549
- }]);
550
-
551
- return ListKeyboardDelegate;
552
- }();
553
-
554
- exports.ListKeyboardDelegate = ListKeyboardDelegate;
555
-
556
- function useSelectableList(props) {
557
- var selectionManager = props.selectionManager,
558
- collection = props.collection,
559
- ref = props.ref,
560
- keyboardDelegate = props.keyboardDelegate,
561
- autoFocus = props.autoFocus,
562
- shouldFocusWrap = props.shouldFocusWrap,
563
- isVirtualized = props.isVirtualized,
564
- disallowEmptySelection = props.disallowEmptySelection; // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).
565
- // When virtualized, the layout object will be passed in as a prop and override this.
566
-
567
- var collator = useCollator({
568
- usage: 'search',
569
- sensitivity: 'base'
570
- });
571
- var delegate = useMemo(function () {
572
- return keyboardDelegate || new ListKeyboardDelegate(collection, ref, collator);
573
- }, [keyboardDelegate, collection, ref, collator]); // If not virtualized, scroll the focused element into view when the focusedKey changes.
574
- // When virtualized, CollectionView handles this internally.
575
-
576
- useEffect(function () {
577
- if (!isVirtualized && selectionManager.focusedKey) {
578
- var element = ref.current.querySelector("[data-key=\"".concat(selectionManager.focusedKey, "\"]"));
579
-
580
- if (element) {
581
- $c9da038647e33591ee80c7ba6beca8c$var$scrollIntoView(ref.current, element);
582
- }
583
- }
584
- }, [isVirtualized, ref, selectionManager.focusedKey]);
585
-
586
- var _useSelectableCollect = useSelectableCollection({
587
- selectionManager: selectionManager,
588
- keyboardDelegate: delegate,
589
- autoFocus: autoFocus,
590
- shouldFocusWrap: shouldFocusWrap,
591
- disallowEmptySelection: disallowEmptySelection
592
- }),
593
- collectionProps = _useSelectableCollect.collectionProps;
29
+ */
594
30
 
595
- return {
596
- listProps: collectionProps
597
- };
598
- } // Scrolls `scrollView` so that `element` is visible.
599
- // Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),
600
- // but doesn't affect parents above `scrollView`.
601
31
 
602
32
 
603
- exports.useSelectableList = useSelectableList;
604
33
 
605
- function $c9da038647e33591ee80c7ba6beca8c$var$scrollIntoView(scrollView, element) {
606
- var offsetX = element.offsetLeft - scrollView.offsetLeft;
607
- var offsetY = element.offsetTop - scrollView.offsetTop;
608
- var width = element.offsetWidth;
609
- var height = element.offsetHeight;
610
- var x = scrollView.scrollLeft;
611
- var y = scrollView.scrollTop;
612
- var maxX = x + scrollView.offsetWidth;
613
- var maxY = y + scrollView.offsetHeight;
614
34
 
615
- if (offsetX <= x) {
616
- x = offsetX;
617
- } else if (offsetX + width > maxX) {
618
- x += offsetX + width - maxX;
619
- }
620
35
 
621
- if (offsetY <= y) {
622
- y = offsetY;
623
- } else if (offsetY + height > maxY) {
624
- y += offsetY + height - maxY;
625
- }
626
36
 
627
- scrollView.scrollLeft = x;
628
- scrollView.scrollTop = y;
629
- }
37
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC","sources":["packages/@react-aria/selection/src/index.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport {useSelectableCollection} from './useSelectableCollection';\nexport {useSelectableItem} from './useSelectableItem';\nexport {useSelectableList} from './useSelectableList';\nexport {ListKeyboardDelegate} from './ListKeyboardDelegate';\nexport {DOMLayoutDelegate} from './DOMLayoutDelegate';\nexport {useTypeSelect} from './useTypeSelect';\n\nexport type {AriaSelectableCollectionOptions, SelectableCollectionAria} from './useSelectableCollection';\nexport type {AriaSelectableListOptions, SelectableListAria} from './useSelectableList';\nexport type {SelectableItemOptions, SelectableItemStates, SelectableItemAria} from './useSelectableItem';\nexport type {AriaTypeSelectOptions, TypeSelectAria} from './useTypeSelect';\n"],"names":[],"version":3,"file":"main.js.map"}