@lumx/react 3.0.2-alpha-react-utils.2 → 3.0.2-alpha-react-utils.3
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/_internal/{6340c129.js → ClickAwayProvider.js} +107 -2
- package/_internal/ClickAwayProvider.js.map +1 -0
- package/_internal/{eca6d4dc.d.ts → types.d.ts} +1 -1
- package/index.d.ts +2627 -56
- package/index.js +12438 -56
- package/index.js.map +1 -1
- package/package.json +4 -4
- package/utils/index.d.ts +1 -1
- package/utils/index.js +1 -1
- package/_internal/0062d1bc.js +0 -220
- package/_internal/0062d1bc.js.map +0 -1
- package/_internal/03e8323d.d.ts +0 -118
- package/_internal/0402f9bc.d.ts +0 -183
- package/_internal/0b370acc.js +0 -796
- package/_internal/0b370acc.js.map +0 -1
- package/_internal/0d154d73.d.ts +0 -67
- package/_internal/113e3b40.d.ts +0 -31
- package/_internal/12ab39e4.js +0 -58
- package/_internal/12ab39e4.js.map +0 -1
- package/_internal/13e759f3.js +0 -343
- package/_internal/13e759f3.js.map +0 -1
- package/_internal/158b46d5.js +0 -151
- package/_internal/158b46d5.js.map +0 -1
- package/_internal/17b74e16.d.ts +0 -31
- package/_internal/1b1530a4.d.ts +0 -43
- package/_internal/20976405.js +0 -87
- package/_internal/20976405.js.map +0 -1
- package/_internal/20b0e9a5.d.ts +0 -77
- package/_internal/26cd9c63.js +0 -118
- package/_internal/26cd9c63.js.map +0 -1
- package/_internal/27f21164.js +0 -79
- package/_internal/27f21164.js.map +0 -1
- package/_internal/288dfd0f.js +0 -13
- package/_internal/288dfd0f.js.map +0 -1
- package/_internal/28aaf23a.d.ts +0 -41
- package/_internal/2c829c0b.d.ts +0 -57
- package/_internal/2cc0aec5.js +0 -86
- package/_internal/2cc0aec5.js.map +0 -1
- package/_internal/2d0a5b28.js +0 -23
- package/_internal/2d0a5b28.js.map +0 -1
- package/_internal/2d4b5a5e.d.ts +0 -92
- package/_internal/2d770113.d.ts +0 -38
- package/_internal/2fe97f00.js +0 -291
- package/_internal/2fe97f00.js.map +0 -1
- package/_internal/31c16fa0.d.ts +0 -37
- package/_internal/329a01d3.js +0 -25
- package/_internal/329a01d3.js.map +0 -1
- package/_internal/3326e990.js +0 -168
- package/_internal/3326e990.js.map +0 -1
- package/_internal/377b2f44.js +0 -70
- package/_internal/377b2f44.js.map +0 -1
- package/_internal/3b8d2a6e.js +0 -124
- package/_internal/3b8d2a6e.js.map +0 -1
- package/_internal/3bd3186e.d.ts +0 -57
- package/_internal/48e40868.js +0 -101
- package/_internal/48e40868.js.map +0 -1
- package/_internal/490ec1da.js +0 -322
- package/_internal/490ec1da.js.map +0 -1
- package/_internal/49127d69.d.ts +0 -52
- package/_internal/4dcd87cb.js +0 -78
- package/_internal/4dcd87cb.js.map +0 -1
- package/_internal/4f44d848.js +0 -157
- package/_internal/4f44d848.js.map +0 -1
- package/_internal/4fc64a2e.js +0 -27
- package/_internal/4fc64a2e.js.map +0 -1
- package/_internal/53a831be.js +0 -108
- package/_internal/53a831be.js.map +0 -1
- package/_internal/55271fa1.d.ts +0 -34
- package/_internal/55d30377.d.ts +0 -22
- package/_internal/56385b04.js +0 -116
- package/_internal/56385b04.js.map +0 -1
- package/_internal/599e250a.d.ts +0 -88
- package/_internal/5a054691.d.ts +0 -33
- package/_internal/5a127b58.js +0 -82
- package/_internal/5a127b58.js.map +0 -1
- package/_internal/5a1c0db4.js +0 -156
- package/_internal/5a1c0db4.js.map +0 -1
- package/_internal/5babcc39.js +0 -147
- package/_internal/5babcc39.js.map +0 -1
- package/_internal/5c1bf4d4.d.ts +0 -81
- package/_internal/5d8ed4ee.js +0 -113
- package/_internal/5d8ed4ee.js.map +0 -1
- package/_internal/616f2912.js +0 -301
- package/_internal/616f2912.js.map +0 -1
- package/_internal/61f915de.d.ts +0 -49
- package/_internal/620081fa.js +0 -122
- package/_internal/620081fa.js.map +0 -1
- package/_internal/6340c129.js.map +0 -1
- package/_internal/6581c863.d.ts +0 -34
- package/_internal/66de4d45.d.ts +0 -32
- package/_internal/6735c5c8.d.ts +0 -62
- package/_internal/69dd1472.js +0 -112
- package/_internal/69dd1472.js.map +0 -1
- package/_internal/6a0e1c77.js +0 -327
- package/_internal/6a0e1c77.js.map +0 -1
- package/_internal/701c20b0.d.ts +0 -24
- package/_internal/7391188a.js +0 -81
- package/_internal/7391188a.js.map +0 -1
- package/_internal/74cb6c26.js +0 -136
- package/_internal/74cb6c26.js.map +0 -1
- package/_internal/761031bf.js +0 -314
- package/_internal/761031bf.js.map +0 -1
- package/_internal/76fed69d.js +0 -50
- package/_internal/76fed69d.js.map +0 -1
- package/_internal/78ef8e34.js +0 -40
- package/_internal/78ef8e34.js.map +0 -1
- package/_internal/7b906e16.d.ts +0 -17
- package/_internal/7be11ddc.d.ts +0 -35
- package/_internal/7d39705e.d.ts +0 -20
- package/_internal/7e03266f.js +0 -47
- package/_internal/7e03266f.js.map +0 -1
- package/_internal/7e8d0ac5.js +0 -84
- package/_internal/7e8d0ac5.js.map +0 -1
- package/_internal/7ffa45f6.js +0 -48
- package/_internal/7ffa45f6.js.map +0 -1
- package/_internal/84c1ec44.js +0 -257
- package/_internal/84c1ec44.js.map +0 -1
- package/_internal/8518279f.js +0 -96
- package/_internal/8518279f.js.map +0 -1
- package/_internal/853713cd.js +0 -25
- package/_internal/853713cd.js.map +0 -1
- package/_internal/86566d75.d.ts +0 -27
- package/_internal/86d22dde.d.ts +0 -57
- package/_internal/8e755ded.d.ts +0 -101
- package/_internal/901471f5.d.ts +0 -37
- package/_internal/935ce959.d.ts +0 -49
- package/_internal/97089888.d.ts +0 -16
- package/_internal/97cc728c.d.ts +0 -26
- package/_internal/9ab3c637.js +0 -2474
- package/_internal/9ab3c637.js.map +0 -1
- package/_internal/9ca3f59c.js +0 -60
- package/_internal/9ca3f59c.js.map +0 -1
- package/_internal/9e95ea38.d.ts +0 -43
- package/_internal/a0108f92.js +0 -84
- package/_internal/a0108f92.js.map +0 -1
- package/_internal/a493a193.d.ts +0 -65
- package/_internal/a521723d.js +0 -120
- package/_internal/a521723d.js.map +0 -1
- package/_internal/a6fad025.d.ts +0 -107
- package/_internal/a8fa525f.js +0 -124
- package/_internal/a8fa525f.js.map +0 -1
- package/_internal/aca2ecf5.js +0 -141
- package/_internal/aca2ecf5.js.map +0 -1
- package/_internal/aef2ef1c.js +0 -53
- package/_internal/aef2ef1c.js.map +0 -1
- package/_internal/af048b0c.js +0 -89
- package/_internal/af048b0c.js.map +0 -1
- package/_internal/af2cd0cd.d.ts +0 -17
- package/_internal/afec6b62.js +0 -864
- package/_internal/afec6b62.js.map +0 -1
- package/_internal/b0eb3a30.js +0 -72
- package/_internal/b0eb3a30.js.map +0 -1
- package/_internal/b89517ea.js +0 -275
- package/_internal/b89517ea.js.map +0 -1
- package/_internal/bafa6fcc.js +0 -116
- package/_internal/bafa6fcc.js.map +0 -1
- package/_internal/bbbeb49e.js +0 -47
- package/_internal/bbbeb49e.js.map +0 -1
- package/_internal/c11f6162.d.ts +0 -52
- package/_internal/c723dab4.js +0 -133
- package/_internal/c723dab4.js.map +0 -1
- package/_internal/c87cc857.d.ts +0 -42
- package/_internal/c97f8d04.js +0 -424
- package/_internal/c97f8d04.js.map +0 -1
- package/_internal/cbb373ea.d.ts +0 -6
- package/_internal/cbef23b6.d.ts +0 -104
- package/_internal/cdf77f06.d.ts +0 -88
- package/_internal/d350f2ff.js +0 -105
- package/_internal/d350f2ff.js.map +0 -1
- package/_internal/d71a8cf7.js +0 -54
- package/_internal/d71a8cf7.js.map +0 -1
- package/_internal/d9337952.js +0 -96
- package/_internal/d9337952.js.map +0 -1
- package/_internal/def14e1a.d.ts +0 -24
- package/_internal/e0cd29c7.d.ts +0 -35
- package/_internal/e354228f.js +0 -145
- package/_internal/e354228f.js.map +0 -1
- package/_internal/e3922a05.d.ts +0 -22
- package/_internal/e3cb6177.d.ts +0 -75
- package/_internal/e810c841.d.ts +0 -182
- package/_internal/ea700b01.d.ts +0 -43
- package/_internal/eed07003.js +0 -122
- package/_internal/eed07003.js.map +0 -1
- package/_internal/f1c9b334.d.ts +0 -22
- package/_internal/f3c3a674.js +0 -281
- package/_internal/f3c3a674.js.map +0 -1
- package/_internal/f571cdcd.js +0 -132
- package/_internal/f571cdcd.js.map +0 -1
- package/_internal/f5bdff7e.js +0 -282
- package/_internal/f5bdff7e.js.map +0 -1
- package/_internal/f851fc00.d.ts +0 -34
- package/_internal/f859b007.d.ts +0 -49
- package/_internal/fb384b79.d.ts +0 -38
- package/_internal/fc4c034b.js +0 -63
- package/_internal/fc4c034b.js.map +0 -1
- package/_internal/fc608bd9.js +0 -16
- package/_internal/fc608bd9.js.map +0 -1
- package/_internal/fd1f4d68.d.ts +0 -36
- package/_internal/fd867c9d.js +0 -346
- package/_internal/fd867c9d.js.map +0 -1
- package/_internal/ff8081e5.js +0 -57
- package/_internal/ff8081e5.js.map +0 -1
- package/_internal/ffd1bfe3.js +0 -123
- package/_internal/ffd1bfe3.js.map +0 -1
- package/components/alert-dialog.d.ts +0 -6
- package/components/alert-dialog.js +0 -2
- package/components/alert-dialog.js.map +0 -1
- package/components/autocomplete.d.ts +0 -8
- package/components/autocomplete.js +0 -2
- package/components/autocomplete.js.map +0 -1
- package/components/avatar.d.ts +0 -4
- package/components/avatar.js +0 -2
- package/components/avatar.js.map +0 -1
- package/components/badge.d.ts +0 -3
- package/components/badge.js +0 -2
- package/components/badge.js.map +0 -1
- package/components/button.d.ts +0 -8
- package/components/button.js +0 -4
- package/components/button.js.map +0 -1
- package/components/checkbox.d.ts +0 -3
- package/components/checkbox.js +0 -2
- package/components/checkbox.js.map +0 -1
- package/components/chip.d.ts +0 -3
- package/components/chip.js +0 -3
- package/components/chip.js.map +0 -1
- package/components/comment-block.d.ts +0 -5
- package/components/comment-block.js +0 -2
- package/components/comment-block.js.map +0 -1
- package/components/date-picker.d.ts +0 -7
- package/components/date-picker.js +0 -2
- package/components/date-picker.js.map +0 -1
- package/components/dialog.d.ts +0 -3
- package/components/dialog.js +0 -2
- package/components/dialog.js.map +0 -1
- package/components/divider.d.ts +0 -3
- package/components/divider.js +0 -2
- package/components/divider.js.map +0 -1
- package/components/drag-handle.d.ts +0 -3
- package/components/drag-handle.js +0 -2
- package/components/drag-handle.js.map +0 -1
- package/components/dropdown.d.ts +0 -4
- package/components/dropdown.js +0 -2
- package/components/dropdown.js.map +0 -1
- package/components/expansion-panel.d.ts +0 -7
- package/components/expansion-panel.js +0 -2
- package/components/expansion-panel.js.map +0 -1
- package/components/flag.d.ts +0 -3
- package/components/flag.js +0 -2
- package/components/flag.js.map +0 -1
- package/components/flex-box.d.ts +0 -3
- package/components/flex-box.js +0 -2
- package/components/flex-box.js.map +0 -1
- package/components/generic-block.d.ts +0 -4
- package/components/generic-block.js +0 -2
- package/components/generic-block.js.map +0 -1
- package/components/grid.d.ts +0 -3
- package/components/grid.js +0 -2
- package/components/grid.js.map +0 -1
- package/components/heading.d.ts +0 -4
- package/components/heading.js +0 -2
- package/components/heading.js.map +0 -1
- package/components/icon.d.ts +0 -3
- package/components/icon.js +0 -2
- package/components/icon.js.map +0 -1
- package/components/image-block.d.ts +0 -4
- package/components/image-block.js +0 -2
- package/components/image-block.js.map +0 -1
- package/components/input-helper.d.ts +0 -3
- package/components/input-helper.js +0 -2
- package/components/input-helper.js.map +0 -1
- package/components/input-label.d.ts +0 -3
- package/components/input-label.js +0 -2
- package/components/input-label.js.map +0 -1
- package/components/lightbox.d.ts +0 -7
- package/components/lightbox.js +0 -2
- package/components/lightbox.js.map +0 -1
- package/components/link-preview.d.ts +0 -5
- package/components/link-preview.js +0 -2
- package/components/link-preview.js.map +0 -1
- package/components/link.d.ts +0 -3
- package/components/link.js +0 -2
- package/components/link.js.map +0 -1
- package/components/list.d.ts +0 -3
- package/components/list.js +0 -3
- package/components/list.js.map +0 -1
- package/components/message.d.ts +0 -3
- package/components/message.js +0 -2
- package/components/message.js.map +0 -1
- package/components/mosaic.d.ts +0 -4
- package/components/mosaic.js +0 -2
- package/components/mosaic.js.map +0 -1
- package/components/notification.d.ts +0 -3
- package/components/notification.js +0 -2
- package/components/notification.js.map +0 -1
- package/components/popover.d.ts +0 -3
- package/components/popover.js +0 -2
- package/components/popover.js.map +0 -1
- package/components/post-block.d.ts +0 -4
- package/components/post-block.js +0 -2
- package/components/post-block.js.map +0 -1
- package/components/progress-tracker.d.ts +0 -3
- package/components/progress-tracker.js +0 -2
- package/components/progress-tracker.js.map +0 -1
- package/components/progress.d.ts +0 -3
- package/components/progress.js +0 -2
- package/components/progress.js.map +0 -1
- package/components/radio-button.d.ts +0 -3
- package/components/radio-button.js +0 -2
- package/components/radio-button.js.map +0 -1
- package/components/select.d.ts +0 -7
- package/components/select.js +0 -2
- package/components/select.js.map +0 -1
- package/components/side-navigation.d.ts +0 -7
- package/components/side-navigation.js +0 -2
- package/components/side-navigation.js.map +0 -1
- package/components/skeleton.d.ts +0 -3
- package/components/skeleton.js +0 -2
- package/components/skeleton.js.map +0 -1
- package/components/slider.d.ts +0 -3
- package/components/slider.js +0 -2
- package/components/slider.js.map +0 -1
- package/components/slideshow.d.ts +0 -7
- package/components/slideshow.js +0 -2
- package/components/slideshow.js.map +0 -1
- package/components/switch.d.ts +0 -3
- package/components/switch.js +0 -2
- package/components/switch.js.map +0 -1
- package/components/table.d.ts +0 -3
- package/components/table.js +0 -2
- package/components/table.js.map +0 -1
- package/components/tabs.d.ts +0 -4
- package/components/tabs.js +0 -2
- package/components/tabs.js.map +0 -1
- package/components/text-field.d.ts +0 -7
- package/components/text-field.js +0 -2
- package/components/text-field.js.map +0 -1
- package/components/text.d.ts +0 -3
- package/components/text.js +0 -2
- package/components/text.js.map +0 -1
- package/components/thumbnail.d.ts +0 -4
- package/components/thumbnail.js +0 -3
- package/components/thumbnail.js.map +0 -1
- package/components/toolbar.d.ts +0 -3
- package/components/toolbar.js +0 -2
- package/components/toolbar.js.map +0 -1
- package/components/tooltip.d.ts +0 -4
- package/components/tooltip.js +0 -2
- package/components/tooltip.js.map +0 -1
- package/components/uploader.d.ts +0 -3
- package/components/uploader.js +0 -2
- package/components/uploader.js.map +0 -1
- package/components/user-block.d.ts +0 -5
- package/components/user-block.js +0 -2
- package/components/user-block.js.map +0 -1
- package/components.d.ts +0 -2
- package/components.js +0 -156
- package/components.js.map +0 -1
package/_internal/afec6b62.js
DELETED
|
@@ -1,864 +0,0 @@
|
|
|
1
|
-
import { d as _slicedToArray, b as _objectWithoutProperties, c as _extends, _ as _objectSpread2, a as _defineProperty } from './6340c129.js';
|
|
2
|
-
import { Theme, Emphasis } from '../components.js';
|
|
3
|
-
import React, { useRef, useEffect, useState, useCallback, useMemo, forwardRef, Children } from 'react';
|
|
4
|
-
import { g as getRootClassName, c as classnames, h as handleBasicClasses, e as detectHorizontalSwipe } from './fd867c9d.js';
|
|
5
|
-
import { g as mdiChevronLeft, p as mdiPauseCircleOutline, q as mdiPlayCircleOutline, f as mdiChevronRight } from './a521723d.js';
|
|
6
|
-
import { W as WINDOW } from './288dfd0f.js';
|
|
7
|
-
import { b as useFocusWithin } from './9ab3c637.js';
|
|
8
|
-
import { m as mergeRefs } from './853713cd.js';
|
|
9
|
-
import { I as IconButton } from './377b2f44.js';
|
|
10
|
-
import isFunction from 'lodash/isFunction';
|
|
11
|
-
import range from 'lodash/range';
|
|
12
|
-
import { a as getFocusableElements } from './5d8ed4ee.js';
|
|
13
|
-
import { u as useRovingTabIndex } from './20976405.js';
|
|
14
|
-
import uniqueId from 'lodash/uniqueId';
|
|
15
|
-
import chunk from 'lodash/chunk';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Making setInterval Declarative with React Hooks.
|
|
19
|
-
* Credits: https://overreacted.io/making-setinterval-declarative-with-react-hooks/
|
|
20
|
-
*
|
|
21
|
-
* @param callback Function called by setInterval.
|
|
22
|
-
* @param delay Delay for setInterval.
|
|
23
|
-
*/
|
|
24
|
-
function useInterval(callback, delay) {
|
|
25
|
-
var savedCallback = useRef();
|
|
26
|
-
useEffect(function () {
|
|
27
|
-
savedCallback.current = callback;
|
|
28
|
-
});
|
|
29
|
-
useEffect(function () {
|
|
30
|
-
if (delay === null) return undefined;
|
|
31
|
-
|
|
32
|
-
function tick() {
|
|
33
|
-
if (isFunction(savedCallback.current)) {
|
|
34
|
-
savedCallback.current();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
var id = setInterval(tick, delay);
|
|
39
|
-
return function () {
|
|
40
|
-
return clearInterval(id);
|
|
41
|
-
};
|
|
42
|
-
}, [delay]);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Autoplay default interval in ms.
|
|
47
|
-
*/
|
|
48
|
-
var AUTOPLAY_DEFAULT_INTERVAL = 5000;
|
|
49
|
-
/**
|
|
50
|
-
* Full width size in percent.
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
var FULL_WIDTH_PERCENT = 100;
|
|
54
|
-
/**
|
|
55
|
-
* Edge from the active index.
|
|
56
|
-
*/
|
|
57
|
-
|
|
58
|
-
var EDGE_FROM_ACTIVE_INDEX = 2;
|
|
59
|
-
/**
|
|
60
|
-
* Max number of pagination items.
|
|
61
|
-
*/
|
|
62
|
-
|
|
63
|
-
var PAGINATION_ITEMS_MAX = 5;
|
|
64
|
-
/**
|
|
65
|
-
* Size of a pagination item. Used to translate wrapper.
|
|
66
|
-
*/
|
|
67
|
-
|
|
68
|
-
var PAGINATION_ITEM_SIZE = 12;
|
|
69
|
-
|
|
70
|
-
var DEFAULT_OPTIONS = {
|
|
71
|
-
activeIndex: 0,
|
|
72
|
-
groupBy: 1,
|
|
73
|
-
interval: AUTOPLAY_DEFAULT_INTERVAL
|
|
74
|
-
};
|
|
75
|
-
var useSlideshowControls = function useSlideshowControls(_ref) {
|
|
76
|
-
var _ref$activeIndex = _ref.activeIndex,
|
|
77
|
-
activeIndex = _ref$activeIndex === void 0 ? DEFAULT_OPTIONS.activeIndex : _ref$activeIndex,
|
|
78
|
-
_ref$groupBy = _ref.groupBy,
|
|
79
|
-
groupBy = _ref$groupBy === void 0 ? DEFAULT_OPTIONS.groupBy : _ref$groupBy,
|
|
80
|
-
_ref$interval = _ref.interval,
|
|
81
|
-
interval = _ref$interval === void 0 ? DEFAULT_OPTIONS.interval : _ref$interval,
|
|
82
|
-
autoPlay = _ref.autoPlay,
|
|
83
|
-
defaultActiveIndex = _ref.defaultActiveIndex,
|
|
84
|
-
onChange = _ref.onChange,
|
|
85
|
-
itemsCount = _ref.itemsCount,
|
|
86
|
-
id = _ref.id,
|
|
87
|
-
slidesId = _ref.slidesId;
|
|
88
|
-
|
|
89
|
-
var _useState = useState(activeIndex),
|
|
90
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
91
|
-
currentIndex = _useState2[0],
|
|
92
|
-
setCurrentIndex = _useState2[1]; // Use state instead of a ref to make the slideshow controls update directly when the element is set.
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var _useState3 = useState(null),
|
|
96
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
97
|
-
element = _useState4[0],
|
|
98
|
-
setElement = _useState4[1]; // Number of slides when using groupBy prop.
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
var slidesCount = Math.ceil(itemsCount / Math.min(groupBy, itemsCount)); // Change current index to display next slide.
|
|
102
|
-
|
|
103
|
-
var goToNextSlide = useCallback(function () {
|
|
104
|
-
var loopback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
105
|
-
setCurrentIndex(function (index) {
|
|
106
|
-
if (loopback && index === slidesCount - 1) {
|
|
107
|
-
// Loopback to the start.
|
|
108
|
-
return 0;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
if (index < slidesCount - 1) {
|
|
112
|
-
// Next slide.
|
|
113
|
-
return index + 1;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
return index;
|
|
117
|
-
});
|
|
118
|
-
}, [slidesCount, setCurrentIndex]); // Change current index to display previous slide.
|
|
119
|
-
|
|
120
|
-
var goToPreviousSlide = useCallback(function () {
|
|
121
|
-
var loopback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
122
|
-
setCurrentIndex(function (index) {
|
|
123
|
-
if (loopback && index === 0) {
|
|
124
|
-
// Loopback to the end.
|
|
125
|
-
return slidesCount - 1;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (index > 0) {
|
|
129
|
-
// Previous slide.
|
|
130
|
-
return index - 1;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return index;
|
|
134
|
-
});
|
|
135
|
-
}, [slidesCount, setCurrentIndex]); // Auto play
|
|
136
|
-
|
|
137
|
-
var _useState5 = useState(Boolean(autoPlay)),
|
|
138
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
139
|
-
isAutoPlaying = _useState6[0],
|
|
140
|
-
setIsAutoPlaying = _useState6[1];
|
|
141
|
-
|
|
142
|
-
var _useState7 = useState(false),
|
|
143
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
144
|
-
isForcePaused = _useState8[0],
|
|
145
|
-
setIsForcePaused = _useState8[1];
|
|
146
|
-
|
|
147
|
-
var isSlideshowAutoPlaying = isForcePaused ? false : isAutoPlaying; // Start
|
|
148
|
-
|
|
149
|
-
useInterval(goToNextSlide, isSlideshowAutoPlaying && slidesCount > 1 ? interval : null); // Reset current index if it become invalid.
|
|
150
|
-
|
|
151
|
-
useEffect(function () {
|
|
152
|
-
if (currentIndex > slidesCount - 1) {
|
|
153
|
-
setCurrentIndex(defaultActiveIndex);
|
|
154
|
-
}
|
|
155
|
-
}, [currentIndex, slidesCount, defaultActiveIndex]);
|
|
156
|
-
|
|
157
|
-
var startAutoPlay = function startAutoPlay() {
|
|
158
|
-
setIsAutoPlaying(Boolean(autoPlay));
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
var stopAutoPlay = function stopAutoPlay() {
|
|
162
|
-
setIsAutoPlaying(false);
|
|
163
|
-
}; // Handle click on a bullet to go to a specific slide.
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
var onPaginationClick = useCallback(function (index) {
|
|
167
|
-
stopAutoPlay();
|
|
168
|
-
setIsForcePaused(true);
|
|
169
|
-
|
|
170
|
-
if (index >= 0 && index < slidesCount) {
|
|
171
|
-
setCurrentIndex(index);
|
|
172
|
-
}
|
|
173
|
-
}, [slidesCount, setCurrentIndex]); // Handle click or keyboard event to go to next slide.
|
|
174
|
-
|
|
175
|
-
var onNextClick = useCallback(function () {
|
|
176
|
-
var loopback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
177
|
-
stopAutoPlay();
|
|
178
|
-
setIsForcePaused(true);
|
|
179
|
-
goToNextSlide(loopback);
|
|
180
|
-
}, [goToNextSlide]); // Handle click or keyboard event to go to previous slide.
|
|
181
|
-
|
|
182
|
-
var onPreviousClick = useCallback(function () {
|
|
183
|
-
var loopback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
184
|
-
stopAutoPlay();
|
|
185
|
-
setIsForcePaused(true);
|
|
186
|
-
goToPreviousSlide(loopback);
|
|
187
|
-
}, [goToPreviousSlide]); // If the activeIndex props changes, update the current slide
|
|
188
|
-
|
|
189
|
-
useEffect(function () {
|
|
190
|
-
setCurrentIndex(activeIndex);
|
|
191
|
-
}, [activeIndex]); // If the slide changes, with autoplay for example, trigger "onChange"
|
|
192
|
-
|
|
193
|
-
useEffect(function () {
|
|
194
|
-
if (!onChange) return;
|
|
195
|
-
onChange(currentIndex);
|
|
196
|
-
}, [currentIndex, onChange]);
|
|
197
|
-
var slideshowId = useMemo(function () {
|
|
198
|
-
return id || uniqueId('slideshow');
|
|
199
|
-
}, [id]);
|
|
200
|
-
var slideshowSlidesId = useMemo(function () {
|
|
201
|
-
return slidesId || uniqueId('slideshow-slides');
|
|
202
|
-
}, [slidesId]);
|
|
203
|
-
|
|
204
|
-
var toggleAutoPlay = function toggleAutoPlay() {
|
|
205
|
-
if (isSlideshowAutoPlaying) {
|
|
206
|
-
stopAutoPlay();
|
|
207
|
-
} else {
|
|
208
|
-
startAutoPlay();
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
|
-
|
|
212
|
-
var toggleForcePause = function toggleForcePause() {
|
|
213
|
-
var shouldBePaused = !isForcePaused;
|
|
214
|
-
setIsForcePaused(shouldBePaused);
|
|
215
|
-
|
|
216
|
-
if (!shouldBePaused) {
|
|
217
|
-
startAutoPlay();
|
|
218
|
-
} else {
|
|
219
|
-
stopAutoPlay();
|
|
220
|
-
}
|
|
221
|
-
}; // Start index and end index of visible slides.
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
var startIndexVisible = currentIndex * groupBy;
|
|
225
|
-
var endIndexVisible = startIndexVisible + groupBy;
|
|
226
|
-
return {
|
|
227
|
-
startIndexVisible: startIndexVisible,
|
|
228
|
-
endIndexVisible: endIndexVisible,
|
|
229
|
-
setSlideshow: setElement,
|
|
230
|
-
slideshow: element,
|
|
231
|
-
slideshowId: slideshowId,
|
|
232
|
-
slideshowSlidesId: slideshowSlidesId,
|
|
233
|
-
onPreviousClick: onPreviousClick,
|
|
234
|
-
onNextClick: onNextClick,
|
|
235
|
-
onPaginationClick: onPaginationClick,
|
|
236
|
-
isAutoPlaying: isSlideshowAutoPlaying,
|
|
237
|
-
toggleAutoPlay: toggleAutoPlay,
|
|
238
|
-
activeIndex: currentIndex,
|
|
239
|
-
slidesCount: slidesCount,
|
|
240
|
-
setActiveIndex: setCurrentIndex,
|
|
241
|
-
startAutoPlay: startAutoPlay,
|
|
242
|
-
stopAutoPlay: stopAutoPlay,
|
|
243
|
-
isForcePaused: isForcePaused,
|
|
244
|
-
toggleForcePause: toggleForcePause
|
|
245
|
-
};
|
|
246
|
-
};
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* Classname set on elements whose focus was blocked.
|
|
250
|
-
* This is to easily find elements that have been tempered with,
|
|
251
|
-
* and not elements whose focus was already initially blocked.
|
|
252
|
-
* */
|
|
253
|
-
var BLOCKED_FOCUS_CLASSNAME = "focus-blocked";
|
|
254
|
-
/**
|
|
255
|
-
* Manage how slides must behave when visible or not.
|
|
256
|
-
* When not visible, they should be hidden from screen readers and not focusable.
|
|
257
|
-
*/
|
|
258
|
-
|
|
259
|
-
var useSlideFocusManagement = function useSlideFocusManagement(_ref) {
|
|
260
|
-
var isSlideDisplayed = _ref.isSlideDisplayed,
|
|
261
|
-
slideRef = _ref.slideRef;
|
|
262
|
-
useEffect(function () {
|
|
263
|
-
var element = slideRef === null || slideRef === void 0 ? void 0 : slideRef.current;
|
|
264
|
-
|
|
265
|
-
if (!element) {
|
|
266
|
-
return undefined;
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Display given slide to screen readers and, if focus was blocked, restore focus on elements.
|
|
270
|
-
*/
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
var enableSlide = function enableSlide() {
|
|
274
|
-
// Hide from screen readers
|
|
275
|
-
element.setAttribute('aria-hidden', 'false'); // Find elements we have blocked focus on
|
|
276
|
-
|
|
277
|
-
element.querySelectorAll(".".concat(BLOCKED_FOCUS_CLASSNAME)).forEach(function (focusableElement) {
|
|
278
|
-
focusableElement.removeAttribute('tabindex');
|
|
279
|
-
focusableElement.classList.remove(BLOCKED_FOCUS_CLASSNAME);
|
|
280
|
-
});
|
|
281
|
-
};
|
|
282
|
-
/**
|
|
283
|
-
* Hide given slide from screen readers and block focus on all focusable elements within.
|
|
284
|
-
*/
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
var blockSlide = function blockSlide() {
|
|
288
|
-
element.setAttribute('aria-hidden', 'true');
|
|
289
|
-
getFocusableElements(element).forEach(function (focusableElement) {
|
|
290
|
-
focusableElement.setAttribute('tabindex', '-1');
|
|
291
|
-
focusableElement.classList.add(BLOCKED_FOCUS_CLASSNAME);
|
|
292
|
-
});
|
|
293
|
-
};
|
|
294
|
-
|
|
295
|
-
var handleDisplay = function handleDisplay() {
|
|
296
|
-
if (!element) {
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
if (isSlideDisplayed) {
|
|
301
|
-
enableSlide();
|
|
302
|
-
} else {
|
|
303
|
-
blockSlide();
|
|
304
|
-
}
|
|
305
|
-
}; // Callback function to execute when mutations are observed
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
var callback = function callback(mutationsList) {
|
|
309
|
-
if (element) {
|
|
310
|
-
var _iteratorNormalCompletion = true;
|
|
311
|
-
var _didIteratorError = false;
|
|
312
|
-
var _iteratorError = undefined;
|
|
313
|
-
|
|
314
|
-
try {
|
|
315
|
-
for (var _iterator = mutationsList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
316
|
-
var mutation = _step.value;
|
|
317
|
-
|
|
318
|
-
if (mutation.type === 'childList') {
|
|
319
|
-
handleDisplay();
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
} catch (err) {
|
|
323
|
-
_didIteratorError = true;
|
|
324
|
-
_iteratorError = err;
|
|
325
|
-
} finally {
|
|
326
|
-
try {
|
|
327
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
328
|
-
_iterator.return();
|
|
329
|
-
}
|
|
330
|
-
} finally {
|
|
331
|
-
if (_didIteratorError) {
|
|
332
|
-
throw _iteratorError;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}; // Create an observer instance linked to the callback function
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
var observer = new MutationObserver(callback);
|
|
341
|
-
|
|
342
|
-
if (element) {
|
|
343
|
-
handleDisplay();
|
|
344
|
-
/** If slide is hidden, start observing for elements to block focus */
|
|
345
|
-
|
|
346
|
-
if (!isSlideDisplayed) {
|
|
347
|
-
observer.observe(element, {
|
|
348
|
-
attributes: true,
|
|
349
|
-
childList: true,
|
|
350
|
-
subtree: true
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
return function () {
|
|
356
|
-
if (!isSlideDisplayed) {
|
|
357
|
-
observer.disconnect();
|
|
358
|
-
}
|
|
359
|
-
};
|
|
360
|
-
}, [isSlideDisplayed, slideRef]);
|
|
361
|
-
};
|
|
362
|
-
|
|
363
|
-
/**
|
|
364
|
-
* Defines the props of the component.
|
|
365
|
-
*/
|
|
366
|
-
|
|
367
|
-
/**
|
|
368
|
-
* Component display name.
|
|
369
|
-
*/
|
|
370
|
-
var COMPONENT_NAME = 'SlideshowItemGroup';
|
|
371
|
-
/**
|
|
372
|
-
* Component default class name and class prefix.
|
|
373
|
-
*/
|
|
374
|
-
|
|
375
|
-
var CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
376
|
-
var buildSlideShowGroupId = function buildSlideShowGroupId(slidesId, index) {
|
|
377
|
-
return "".concat(slidesId, "-slide-").concat(index);
|
|
378
|
-
};
|
|
379
|
-
/**
|
|
380
|
-
* SlideshowItemGroup component.
|
|
381
|
-
*
|
|
382
|
-
* @param props Component props.
|
|
383
|
-
* @param ref Component ref.
|
|
384
|
-
* @return React element.
|
|
385
|
-
*/
|
|
386
|
-
|
|
387
|
-
var SlideshowItemGroup = forwardRef(function (props, ref) {
|
|
388
|
-
var className = props.className,
|
|
389
|
-
children = props.children,
|
|
390
|
-
_props$role = props.role,
|
|
391
|
-
role = _props$role === void 0 ? 'group' : _props$role,
|
|
392
|
-
label = props.label,
|
|
393
|
-
isDisplayed = props.isDisplayed,
|
|
394
|
-
forwardedProps = _objectWithoutProperties(props, ["className", "children", "role", "label", "isDisplayed"]);
|
|
395
|
-
|
|
396
|
-
var groupRef = React.useRef(null);
|
|
397
|
-
useSlideFocusManagement({
|
|
398
|
-
isSlideDisplayed: isDisplayed,
|
|
399
|
-
slideRef: groupRef
|
|
400
|
-
});
|
|
401
|
-
return React.createElement("div", _extends({
|
|
402
|
-
ref: mergeRefs(groupRef, ref),
|
|
403
|
-
role: role,
|
|
404
|
-
className: classnames(className, handleBasicClasses({
|
|
405
|
-
prefix: CLASSNAME
|
|
406
|
-
})),
|
|
407
|
-
"aria-roledescription": "slide",
|
|
408
|
-
"aria-label": label
|
|
409
|
-
}, forwardedProps), children);
|
|
410
|
-
});
|
|
411
|
-
SlideshowItemGroup.displayName = COMPONENT_NAME;
|
|
412
|
-
SlideshowItemGroup.className = CLASSNAME;
|
|
413
|
-
|
|
414
|
-
/**
|
|
415
|
-
* Defines the props of the component.
|
|
416
|
-
*/
|
|
417
|
-
|
|
418
|
-
/**
|
|
419
|
-
* Component default props.
|
|
420
|
-
*/
|
|
421
|
-
var DEFAULT_PROPS = _objectSpread2({}, DEFAULT_OPTIONS, {
|
|
422
|
-
theme: Theme.light
|
|
423
|
-
});
|
|
424
|
-
/**
|
|
425
|
-
* Slideshow component.
|
|
426
|
-
*
|
|
427
|
-
* @param props Component props.
|
|
428
|
-
* @param ref Component ref.
|
|
429
|
-
* @return React element.
|
|
430
|
-
*/
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
var Slideshow = forwardRef(function (props, ref) {
|
|
434
|
-
var activeIndex = props.activeIndex,
|
|
435
|
-
autoPlay = props.autoPlay,
|
|
436
|
-
children = props.children,
|
|
437
|
-
className = props.className,
|
|
438
|
-
fillHeight = props.fillHeight,
|
|
439
|
-
groupBy = props.groupBy,
|
|
440
|
-
interval = props.interval,
|
|
441
|
-
onChange = props.onChange,
|
|
442
|
-
slideshowControlsProps = props.slideshowControlsProps,
|
|
443
|
-
theme = props.theme,
|
|
444
|
-
id = props.id,
|
|
445
|
-
slidesId = props.slidesId,
|
|
446
|
-
slideGroupLabel = props.slideGroupLabel,
|
|
447
|
-
forwardedProps = _objectWithoutProperties(props, ["activeIndex", "autoPlay", "children", "className", "fillHeight", "groupBy", "interval", "onChange", "slideshowControlsProps", "theme", "id", "slidesId", "slideGroupLabel"]); // Number of slideshow items.
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
var itemsCount = React.Children.count(children);
|
|
451
|
-
|
|
452
|
-
var _SlideshowControls$us = SlideshowControls.useSlideshowControls({
|
|
453
|
-
activeIndex: activeIndex,
|
|
454
|
-
defaultActiveIndex: DEFAULT_PROPS.activeIndex,
|
|
455
|
-
autoPlay: Boolean(autoPlay),
|
|
456
|
-
itemsCount: itemsCount,
|
|
457
|
-
groupBy: groupBy,
|
|
458
|
-
id: id,
|
|
459
|
-
interval: interval,
|
|
460
|
-
onChange: onChange,
|
|
461
|
-
slidesId: slidesId
|
|
462
|
-
}),
|
|
463
|
-
currentIndex = _SlideshowControls$us.activeIndex,
|
|
464
|
-
slideshowId = _SlideshowControls$us.slideshowId,
|
|
465
|
-
setSlideshow = _SlideshowControls$us.setSlideshow,
|
|
466
|
-
isAutoPlaying = _SlideshowControls$us.isAutoPlaying,
|
|
467
|
-
slideshowSlidesId = _SlideshowControls$us.slideshowSlidesId,
|
|
468
|
-
slidesCount = _SlideshowControls$us.slidesCount,
|
|
469
|
-
onNextClick = _SlideshowControls$us.onNextClick,
|
|
470
|
-
onPaginationClick = _SlideshowControls$us.onPaginationClick,
|
|
471
|
-
onPreviousClick = _SlideshowControls$us.onPreviousClick,
|
|
472
|
-
slideshow = _SlideshowControls$us.slideshow,
|
|
473
|
-
stopAutoPlay = _SlideshowControls$us.stopAutoPlay,
|
|
474
|
-
startAutoPlay = _SlideshowControls$us.startAutoPlay,
|
|
475
|
-
toggleAutoPlay = _SlideshowControls$us.toggleAutoPlay,
|
|
476
|
-
toggleForcePause = _SlideshowControls$us.toggleForcePause;
|
|
477
|
-
|
|
478
|
-
useFocusWithin({
|
|
479
|
-
element: slideshow,
|
|
480
|
-
onFocusIn: stopAutoPlay,
|
|
481
|
-
onFocusOut: startAutoPlay
|
|
482
|
-
});
|
|
483
|
-
var showControls = slideshowControlsProps && slidesCount > 1;
|
|
484
|
-
return React.createElement(Slides, _extends({
|
|
485
|
-
activeIndex: currentIndex,
|
|
486
|
-
id: slideshowId,
|
|
487
|
-
className: className,
|
|
488
|
-
theme: theme,
|
|
489
|
-
fillHeight: fillHeight,
|
|
490
|
-
groupBy: groupBy,
|
|
491
|
-
isAutoPlaying: isAutoPlaying,
|
|
492
|
-
autoPlay: autoPlay,
|
|
493
|
-
slidesId: slideshowSlidesId,
|
|
494
|
-
toggleAutoPlay: toggleAutoPlay,
|
|
495
|
-
ref: mergeRefs(ref, setSlideshow),
|
|
496
|
-
hasControls: showControls,
|
|
497
|
-
slideGroupLabel: slideGroupLabel,
|
|
498
|
-
afterSlides: slideshowControlsProps && slidesCount > 1 ? React.createElement("div", {
|
|
499
|
-
className: "".concat(Slides.className, "__controls")
|
|
500
|
-
}, React.createElement(SlideshowControls, _extends({}, slideshowControlsProps, {
|
|
501
|
-
activeIndex: currentIndex,
|
|
502
|
-
onPaginationClick: onPaginationClick,
|
|
503
|
-
onNextClick: onNextClick,
|
|
504
|
-
onPreviousClick: onPreviousClick,
|
|
505
|
-
slidesCount: slidesCount,
|
|
506
|
-
parentRef: slideshow,
|
|
507
|
-
theme: theme,
|
|
508
|
-
isAutoPlaying: isAutoPlaying,
|
|
509
|
-
nextButtonProps: _objectSpread2({
|
|
510
|
-
'aria-controls': slideshowSlidesId
|
|
511
|
-
}, slideshowControlsProps.nextButtonProps),
|
|
512
|
-
previousButtonProps: _objectSpread2({
|
|
513
|
-
'aria-controls': slideshowSlidesId
|
|
514
|
-
}, slideshowControlsProps.previousButtonProps),
|
|
515
|
-
playButtonProps: autoPlay ? _objectSpread2({
|
|
516
|
-
'aria-controls': slideshowSlidesId,
|
|
517
|
-
onClick: toggleForcePause
|
|
518
|
-
}, slideshowControlsProps.playButtonProps) : undefined,
|
|
519
|
-
paginationItemProps: function paginationItemProps(index) {
|
|
520
|
-
var _slideshowControlsPro;
|
|
521
|
-
|
|
522
|
-
return _objectSpread2({
|
|
523
|
-
'aria-controls': buildSlideShowGroupId(slideshowSlidesId, index)
|
|
524
|
-
}, (_slideshowControlsPro = slideshowControlsProps.paginationItemProps) === null || _slideshowControlsPro === void 0 ? void 0 : _slideshowControlsPro.call(slideshowControlsProps, index));
|
|
525
|
-
}
|
|
526
|
-
}))) : undefined
|
|
527
|
-
}, forwardedProps), children);
|
|
528
|
-
});
|
|
529
|
-
Slideshow.displayName = 'Slideshow';
|
|
530
|
-
Slideshow.defaultProps = DEFAULT_PROPS;
|
|
531
|
-
|
|
532
|
-
/**
|
|
533
|
-
* Defines the props of the component.
|
|
534
|
-
*/
|
|
535
|
-
|
|
536
|
-
/**
|
|
537
|
-
* Component display name.
|
|
538
|
-
*/
|
|
539
|
-
var COMPONENT_NAME$1 = 'SlideshowItem';
|
|
540
|
-
/**
|
|
541
|
-
* Component default class name and class prefix.
|
|
542
|
-
*/
|
|
543
|
-
|
|
544
|
-
var CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
|
|
545
|
-
/**
|
|
546
|
-
* SlideshowItem component.
|
|
547
|
-
*
|
|
548
|
-
* @param props Component props.
|
|
549
|
-
* @param ref Component ref.
|
|
550
|
-
* @return React element.
|
|
551
|
-
*/
|
|
552
|
-
|
|
553
|
-
var SlideshowItem = forwardRef(function (props, ref) {
|
|
554
|
-
var className = props.className,
|
|
555
|
-
children = props.children,
|
|
556
|
-
forwardedProps = _objectWithoutProperties(props, ["className", "children"]);
|
|
557
|
-
|
|
558
|
-
return React.createElement("div", _extends({
|
|
559
|
-
ref: ref,
|
|
560
|
-
className: classnames(className, handleBasicClasses({
|
|
561
|
-
prefix: CLASSNAME$1
|
|
562
|
-
}))
|
|
563
|
-
}, forwardedProps), children);
|
|
564
|
-
});
|
|
565
|
-
SlideshowItem.displayName = COMPONENT_NAME$1;
|
|
566
|
-
SlideshowItem.className = CLASSNAME$1;
|
|
567
|
-
|
|
568
|
-
var isTouchDevice = function isTouchDevice() {
|
|
569
|
-
return 'ontouchstart' in window;
|
|
570
|
-
};
|
|
571
|
-
/**
|
|
572
|
-
* Listen swipe to navigate left and right.
|
|
573
|
-
*/
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
function useSwipeNavigate(element, onNext, onPrevious) {
|
|
577
|
-
useEffect(function () {
|
|
578
|
-
if (!element || !isTouchDevice()) return undefined;
|
|
579
|
-
return detectHorizontalSwipe(element, function (swipe) {
|
|
580
|
-
var callback = swipe === 'right' ? onPrevious : onNext;
|
|
581
|
-
callback === null || callback === void 0 ? void 0 : callback();
|
|
582
|
-
});
|
|
583
|
-
}, [onPrevious, onNext, element]);
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
/**
|
|
587
|
-
* Calculate the currently visible pagination "bullet" range.
|
|
588
|
-
*/
|
|
589
|
-
function usePaginationVisibleRange(activeIndex, slideCount) {
|
|
590
|
-
var previousVisibleRangeRef = useRef();
|
|
591
|
-
return useMemo(function () {
|
|
592
|
-
var lastSlide = slideCount - 1;
|
|
593
|
-
var previousVisibleRange = previousVisibleRangeRef.current;
|
|
594
|
-
var newVisibleRange;
|
|
595
|
-
|
|
596
|
-
if (activeIndex === (previousVisibleRange === null || previousVisibleRange === void 0 ? void 0 : previousVisibleRange.max) && activeIndex < lastSlide) {
|
|
597
|
-
newVisibleRange = {
|
|
598
|
-
min: previousVisibleRange.min + 1,
|
|
599
|
-
max: previousVisibleRange.max + 1
|
|
600
|
-
};
|
|
601
|
-
} else if (activeIndex === (previousVisibleRange === null || previousVisibleRange === void 0 ? void 0 : previousVisibleRange.min) && activeIndex > 0) {
|
|
602
|
-
newVisibleRange = {
|
|
603
|
-
min: previousVisibleRange.min - 1,
|
|
604
|
-
max: previousVisibleRange.max - 1
|
|
605
|
-
};
|
|
606
|
-
} else {
|
|
607
|
-
var deltaItems = PAGINATION_ITEMS_MAX - 1;
|
|
608
|
-
var min = activeIndex - EDGE_FROM_ACTIVE_INDEX;
|
|
609
|
-
var max = activeIndex + EDGE_FROM_ACTIVE_INDEX;
|
|
610
|
-
|
|
611
|
-
if (activeIndex > lastSlide - EDGE_FROM_ACTIVE_INDEX) {
|
|
612
|
-
min = lastSlide - deltaItems;
|
|
613
|
-
max = lastSlide;
|
|
614
|
-
} else if (activeIndex < deltaItems) {
|
|
615
|
-
min = 0;
|
|
616
|
-
max = deltaItems;
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
newVisibleRange = {
|
|
620
|
-
min: min,
|
|
621
|
-
max: max
|
|
622
|
-
};
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
previousVisibleRangeRef.current = newVisibleRange;
|
|
626
|
-
return newVisibleRange;
|
|
627
|
-
}, [activeIndex, slideCount]);
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
/**
|
|
631
|
-
* Defines the props of the component.
|
|
632
|
-
*/
|
|
633
|
-
|
|
634
|
-
/**
|
|
635
|
-
* Component display name.
|
|
636
|
-
*/
|
|
637
|
-
var COMPONENT_NAME$2 = 'SlideshowControls';
|
|
638
|
-
/**
|
|
639
|
-
* Component default class name and class prefix.
|
|
640
|
-
*/
|
|
641
|
-
|
|
642
|
-
var CLASSNAME$2 = getRootClassName(COMPONENT_NAME$2);
|
|
643
|
-
/**
|
|
644
|
-
* Component default props.
|
|
645
|
-
*/
|
|
646
|
-
|
|
647
|
-
var DEFAULT_PROPS$1 = {
|
|
648
|
-
activeIndex: 0,
|
|
649
|
-
theme: Theme.light
|
|
650
|
-
};
|
|
651
|
-
/**
|
|
652
|
-
* SlideshowControls component.
|
|
653
|
-
*
|
|
654
|
-
* @param props Component props.
|
|
655
|
-
* @param ref Component ref.
|
|
656
|
-
* @return React element.
|
|
657
|
-
*/
|
|
658
|
-
|
|
659
|
-
var InternalSlideshowControls = forwardRef(function (props, ref) {
|
|
660
|
-
var activeIndex = props.activeIndex,
|
|
661
|
-
className = props.className,
|
|
662
|
-
nextButtonProps = props.nextButtonProps,
|
|
663
|
-
onNextClick = props.onNextClick,
|
|
664
|
-
onPaginationClick = props.onPaginationClick,
|
|
665
|
-
onPreviousClick = props.onPreviousClick,
|
|
666
|
-
parentRef = props.parentRef,
|
|
667
|
-
previousButtonProps = props.previousButtonProps,
|
|
668
|
-
paginationProps = props.paginationProps,
|
|
669
|
-
slidesCount = props.slidesCount,
|
|
670
|
-
theme = props.theme,
|
|
671
|
-
_props$isAutoPlaying = props.isAutoPlaying,
|
|
672
|
-
isAutoPlaying = _props$isAutoPlaying === void 0 ? false : _props$isAutoPlaying,
|
|
673
|
-
playButtonProps = props.playButtonProps,
|
|
674
|
-
paginationItemLabel = props.paginationItemLabel,
|
|
675
|
-
paginationItemProps = props.paginationItemProps,
|
|
676
|
-
forwardedProps = _objectWithoutProperties(props, ["activeIndex", "className", "nextButtonProps", "onNextClick", "onPaginationClick", "onPreviousClick", "parentRef", "previousButtonProps", "paginationProps", "slidesCount", "theme", "isAutoPlaying", "playButtonProps", "paginationItemLabel", "paginationItemProps"]);
|
|
677
|
-
|
|
678
|
-
var parent;
|
|
679
|
-
|
|
680
|
-
if (WINDOW) {
|
|
681
|
-
// Checking window object to avoid errors in SSR.
|
|
682
|
-
parent = parentRef instanceof HTMLElement ? parentRef : parentRef === null || parentRef === void 0 ? void 0 : parentRef.current;
|
|
683
|
-
}
|
|
684
|
-
|
|
685
|
-
var paginationRef = React.useRef(null); // Listen to touch swipe navigate left & right.
|
|
686
|
-
|
|
687
|
-
useSwipeNavigate(parent, // Go next without loopback.
|
|
688
|
-
useCallback(function () {
|
|
689
|
-
return onNextClick === null || onNextClick === void 0 ? void 0 : onNextClick(false);
|
|
690
|
-
}, [onNextClick]), // Go previous without loopback.
|
|
691
|
-
useCallback(function () {
|
|
692
|
-
return onPreviousClick === null || onPreviousClick === void 0 ? void 0 : onPreviousClick(false);
|
|
693
|
-
}, [onPreviousClick]));
|
|
694
|
-
/**
|
|
695
|
-
* Add roving tab index pattern to pagination items and activate slide on focus.
|
|
696
|
-
*/
|
|
697
|
-
|
|
698
|
-
useRovingTabIndex({
|
|
699
|
-
parentRef: paginationRef,
|
|
700
|
-
elementSelector: 'button',
|
|
701
|
-
keepTabIndex: true,
|
|
702
|
-
onElementFocus: function onElementFocus(element) {
|
|
703
|
-
element.click();
|
|
704
|
-
}
|
|
705
|
-
}); // Pagination "bullet" range.
|
|
706
|
-
|
|
707
|
-
var visibleRange = usePaginationVisibleRange(activeIndex, slidesCount); // Inline style of wrapper element.
|
|
708
|
-
|
|
709
|
-
var wrapperStyle = {
|
|
710
|
-
transform: "translateX(-".concat(PAGINATION_ITEM_SIZE * visibleRange.min, "px)")
|
|
711
|
-
};
|
|
712
|
-
return React.createElement("div", _extends({
|
|
713
|
-
ref: ref
|
|
714
|
-
}, forwardedProps, {
|
|
715
|
-
className: classnames(className, handleBasicClasses({
|
|
716
|
-
prefix: CLASSNAME$2,
|
|
717
|
-
theme: theme
|
|
718
|
-
}), _defineProperty({}, "".concat(CLASSNAME$2, "--has-infinite-pagination"), slidesCount > PAGINATION_ITEMS_MAX))
|
|
719
|
-
}), React.createElement(IconButton, _extends({}, previousButtonProps, {
|
|
720
|
-
icon: mdiChevronLeft,
|
|
721
|
-
className: "".concat(CLASSNAME$2, "__navigation"),
|
|
722
|
-
color: theme === Theme.dark ? 'light' : 'dark',
|
|
723
|
-
emphasis: Emphasis.low,
|
|
724
|
-
onClick: onPreviousClick
|
|
725
|
-
})), React.createElement("div", {
|
|
726
|
-
ref: paginationRef,
|
|
727
|
-
className: "".concat(CLASSNAME$2, "__pagination")
|
|
728
|
-
}, React.createElement("div", _extends({
|
|
729
|
-
className: "".concat(CLASSNAME$2, "__pagination-items"),
|
|
730
|
-
style: wrapperStyle,
|
|
731
|
-
role: "tablist"
|
|
732
|
-
}, paginationProps), useMemo(function () {
|
|
733
|
-
return range(slidesCount).map(function (index) {
|
|
734
|
-
var isOnEdge = index !== 0 && index !== slidesCount - 1 && (index === visibleRange.min || index === visibleRange.max);
|
|
735
|
-
var isActive = activeIndex === index;
|
|
736
|
-
var isOutRange = index < visibleRange.min || index > visibleRange.max;
|
|
737
|
-
|
|
738
|
-
var _ref = paginationItemProps ? paginationItemProps(index) : {},
|
|
739
|
-
_ref$className = _ref.className,
|
|
740
|
-
itemClassName = _ref$className === void 0 ? undefined : _ref$className,
|
|
741
|
-
_ref$label = _ref.label,
|
|
742
|
-
label = _ref$label === void 0 ? undefined : _ref$label,
|
|
743
|
-
itemProps = _objectWithoutProperties(_ref, ["className", "label"]);
|
|
744
|
-
|
|
745
|
-
var ariaLabel = label || (paginationItemLabel === null || paginationItemLabel === void 0 ? void 0 : paginationItemLabel(index)) || "".concat(index + 1, " / ").concat(slidesCount);
|
|
746
|
-
return React.createElement("button", _extends({
|
|
747
|
-
className: classnames(handleBasicClasses({
|
|
748
|
-
prefix: "".concat(CLASSNAME$2, "__pagination-item"),
|
|
749
|
-
isActive: isActive,
|
|
750
|
-
isOnEdge: isOnEdge,
|
|
751
|
-
isOutRange: isOutRange
|
|
752
|
-
}), itemClassName),
|
|
753
|
-
key: index,
|
|
754
|
-
type: "button",
|
|
755
|
-
tabIndex: isActive ? undefined : -1,
|
|
756
|
-
role: "tab",
|
|
757
|
-
"aria-selected": isActive,
|
|
758
|
-
onClick: function onClick() {
|
|
759
|
-
return onPaginationClick === null || onPaginationClick === void 0 ? void 0 : onPaginationClick(index);
|
|
760
|
-
},
|
|
761
|
-
"aria-label": ariaLabel
|
|
762
|
-
}, itemProps));
|
|
763
|
-
});
|
|
764
|
-
}, [slidesCount, visibleRange.min, visibleRange.max, activeIndex, paginationItemProps, paginationItemLabel, onPaginationClick]))), playButtonProps ? React.createElement(IconButton, _extends({}, playButtonProps, {
|
|
765
|
-
icon: isAutoPlaying ? mdiPauseCircleOutline : mdiPlayCircleOutline,
|
|
766
|
-
className: "".concat(CLASSNAME$2, "__play"),
|
|
767
|
-
color: theme === Theme.dark ? 'light' : 'dark',
|
|
768
|
-
emphasis: Emphasis.low
|
|
769
|
-
})) : null, React.createElement(IconButton, _extends({}, nextButtonProps, {
|
|
770
|
-
icon: mdiChevronRight,
|
|
771
|
-
className: "".concat(CLASSNAME$2, "__navigation"),
|
|
772
|
-
color: theme === Theme.dark ? 'light' : 'dark',
|
|
773
|
-
emphasis: Emphasis.low,
|
|
774
|
-
onClick: onNextClick
|
|
775
|
-
})));
|
|
776
|
-
});
|
|
777
|
-
InternalSlideshowControls.displayName = COMPONENT_NAME$2;
|
|
778
|
-
InternalSlideshowControls.className = CLASSNAME$2;
|
|
779
|
-
InternalSlideshowControls.defaultProps = DEFAULT_PROPS$1;
|
|
780
|
-
var SlideshowControls = Object.assign(InternalSlideshowControls, {
|
|
781
|
-
useSlideshowControls: useSlideshowControls,
|
|
782
|
-
useSlideshowControlsDefaultOptions: DEFAULT_OPTIONS
|
|
783
|
-
});
|
|
784
|
-
|
|
785
|
-
/**
|
|
786
|
-
* Component display name.
|
|
787
|
-
*/
|
|
788
|
-
var COMPONENT_NAME$3 = 'Slideshow';
|
|
789
|
-
/**
|
|
790
|
-
* Component default class name and class prefix.
|
|
791
|
-
*/
|
|
792
|
-
|
|
793
|
-
var CLASSNAME$3 = getRootClassName(COMPONENT_NAME$3);
|
|
794
|
-
/**
|
|
795
|
-
* Slides component.
|
|
796
|
-
*
|
|
797
|
-
* @param props Component props.
|
|
798
|
-
* @param ref Component ref.
|
|
799
|
-
* @return React element.
|
|
800
|
-
*/
|
|
801
|
-
|
|
802
|
-
var Slides = forwardRef(function (props, ref) {
|
|
803
|
-
var _classNames;
|
|
804
|
-
|
|
805
|
-
var activeIndex = props.activeIndex,
|
|
806
|
-
id = props.id,
|
|
807
|
-
className = props.className,
|
|
808
|
-
theme = props.theme,
|
|
809
|
-
fillHeight = props.fillHeight,
|
|
810
|
-
groupBy = props.groupBy,
|
|
811
|
-
isAutoPlaying = props.isAutoPlaying,
|
|
812
|
-
toggleAutoPlay = props.toggleAutoPlay,
|
|
813
|
-
slidesId = props.slidesId,
|
|
814
|
-
children = props.children,
|
|
815
|
-
afterSlides = props.afterSlides,
|
|
816
|
-
hasControls = props.hasControls,
|
|
817
|
-
slideGroupLabel = props.slideGroupLabel,
|
|
818
|
-
forwardedProps = _objectWithoutProperties(props, ["activeIndex", "id", "className", "theme", "fillHeight", "groupBy", "isAutoPlaying", "toggleAutoPlay", "slidesId", "children", "afterSlides", "hasControls", "slideGroupLabel"]);
|
|
819
|
-
|
|
820
|
-
var wrapperRef = React.useRef(null);
|
|
821
|
-
var startIndexVisible = activeIndex;
|
|
822
|
-
var endIndexVisible = startIndexVisible + 1; // Inline style of wrapper element.
|
|
823
|
-
|
|
824
|
-
var wrapperStyle = {
|
|
825
|
-
transform: "translateX(-".concat(FULL_WIDTH_PERCENT * activeIndex, "%)")
|
|
826
|
-
};
|
|
827
|
-
var groups = React.useMemo(function () {
|
|
828
|
-
var childrenArray = Children.toArray(children);
|
|
829
|
-
return groupBy && groupBy > 1 ? chunk(childrenArray, groupBy) : childrenArray;
|
|
830
|
-
}, [children, groupBy]);
|
|
831
|
-
return React.createElement("section", _extends({
|
|
832
|
-
id: id,
|
|
833
|
-
ref: ref
|
|
834
|
-
}, forwardedProps, {
|
|
835
|
-
className: classnames(className, handleBasicClasses({
|
|
836
|
-
prefix: CLASSNAME$3,
|
|
837
|
-
theme: theme
|
|
838
|
-
}), (_classNames = {}, _defineProperty(_classNames, "".concat(CLASSNAME$3, "--fill-height"), fillHeight), _defineProperty(_classNames, "".concat(CLASSNAME$3, "--group-by-").concat(groupBy), Boolean(groupBy)), _classNames)),
|
|
839
|
-
"aria-roledescription": "carousel"
|
|
840
|
-
}), React.createElement("div", {
|
|
841
|
-
id: slidesId,
|
|
842
|
-
className: "".concat(CLASSNAME$3, "__slides"),
|
|
843
|
-
onMouseEnter: toggleAutoPlay,
|
|
844
|
-
onMouseLeave: toggleAutoPlay,
|
|
845
|
-
"aria-live": isAutoPlaying ? 'off' : 'polite'
|
|
846
|
-
}, React.createElement("div", {
|
|
847
|
-
ref: wrapperRef,
|
|
848
|
-
className: "".concat(CLASSNAME$3, "__wrapper"),
|
|
849
|
-
style: wrapperStyle
|
|
850
|
-
}, groups.map(function (group, index) {
|
|
851
|
-
return React.createElement(SlideshowItemGroup, {
|
|
852
|
-
key: index,
|
|
853
|
-
id: slidesId && buildSlideShowGroupId(slidesId, index),
|
|
854
|
-
role: hasControls ? 'tabpanel' : 'group',
|
|
855
|
-
label: slideGroupLabel ? slideGroupLabel(index + 1, groups.length) : undefined,
|
|
856
|
-
isDisplayed: index >= startIndexVisible && index < endIndexVisible
|
|
857
|
-
}, group);
|
|
858
|
-
}))), afterSlides);
|
|
859
|
-
});
|
|
860
|
-
Slides.displayName = COMPONENT_NAME$3;
|
|
861
|
-
Slides.className = CLASSNAME$3;
|
|
862
|
-
|
|
863
|
-
export { Slideshow as S, SlideshowItem as a, SlideshowControls as b, Slides as c };
|
|
864
|
-
//# sourceMappingURL=afec6b62.js.map
|