@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.
Files changed (357) hide show
  1. package/_internal/{6340c129.js → ClickAwayProvider.js} +107 -2
  2. package/_internal/ClickAwayProvider.js.map +1 -0
  3. package/_internal/{eca6d4dc.d.ts → types.d.ts} +1 -1
  4. package/index.d.ts +2627 -56
  5. package/index.js +12438 -56
  6. package/index.js.map +1 -1
  7. package/package.json +4 -4
  8. package/utils/index.d.ts +1 -1
  9. package/utils/index.js +1 -1
  10. package/_internal/0062d1bc.js +0 -220
  11. package/_internal/0062d1bc.js.map +0 -1
  12. package/_internal/03e8323d.d.ts +0 -118
  13. package/_internal/0402f9bc.d.ts +0 -183
  14. package/_internal/0b370acc.js +0 -796
  15. package/_internal/0b370acc.js.map +0 -1
  16. package/_internal/0d154d73.d.ts +0 -67
  17. package/_internal/113e3b40.d.ts +0 -31
  18. package/_internal/12ab39e4.js +0 -58
  19. package/_internal/12ab39e4.js.map +0 -1
  20. package/_internal/13e759f3.js +0 -343
  21. package/_internal/13e759f3.js.map +0 -1
  22. package/_internal/158b46d5.js +0 -151
  23. package/_internal/158b46d5.js.map +0 -1
  24. package/_internal/17b74e16.d.ts +0 -31
  25. package/_internal/1b1530a4.d.ts +0 -43
  26. package/_internal/20976405.js +0 -87
  27. package/_internal/20976405.js.map +0 -1
  28. package/_internal/20b0e9a5.d.ts +0 -77
  29. package/_internal/26cd9c63.js +0 -118
  30. package/_internal/26cd9c63.js.map +0 -1
  31. package/_internal/27f21164.js +0 -79
  32. package/_internal/27f21164.js.map +0 -1
  33. package/_internal/288dfd0f.js +0 -13
  34. package/_internal/288dfd0f.js.map +0 -1
  35. package/_internal/28aaf23a.d.ts +0 -41
  36. package/_internal/2c829c0b.d.ts +0 -57
  37. package/_internal/2cc0aec5.js +0 -86
  38. package/_internal/2cc0aec5.js.map +0 -1
  39. package/_internal/2d0a5b28.js +0 -23
  40. package/_internal/2d0a5b28.js.map +0 -1
  41. package/_internal/2d4b5a5e.d.ts +0 -92
  42. package/_internal/2d770113.d.ts +0 -38
  43. package/_internal/2fe97f00.js +0 -291
  44. package/_internal/2fe97f00.js.map +0 -1
  45. package/_internal/31c16fa0.d.ts +0 -37
  46. package/_internal/329a01d3.js +0 -25
  47. package/_internal/329a01d3.js.map +0 -1
  48. package/_internal/3326e990.js +0 -168
  49. package/_internal/3326e990.js.map +0 -1
  50. package/_internal/377b2f44.js +0 -70
  51. package/_internal/377b2f44.js.map +0 -1
  52. package/_internal/3b8d2a6e.js +0 -124
  53. package/_internal/3b8d2a6e.js.map +0 -1
  54. package/_internal/3bd3186e.d.ts +0 -57
  55. package/_internal/48e40868.js +0 -101
  56. package/_internal/48e40868.js.map +0 -1
  57. package/_internal/490ec1da.js +0 -322
  58. package/_internal/490ec1da.js.map +0 -1
  59. package/_internal/49127d69.d.ts +0 -52
  60. package/_internal/4dcd87cb.js +0 -78
  61. package/_internal/4dcd87cb.js.map +0 -1
  62. package/_internal/4f44d848.js +0 -157
  63. package/_internal/4f44d848.js.map +0 -1
  64. package/_internal/4fc64a2e.js +0 -27
  65. package/_internal/4fc64a2e.js.map +0 -1
  66. package/_internal/53a831be.js +0 -108
  67. package/_internal/53a831be.js.map +0 -1
  68. package/_internal/55271fa1.d.ts +0 -34
  69. package/_internal/55d30377.d.ts +0 -22
  70. package/_internal/56385b04.js +0 -116
  71. package/_internal/56385b04.js.map +0 -1
  72. package/_internal/599e250a.d.ts +0 -88
  73. package/_internal/5a054691.d.ts +0 -33
  74. package/_internal/5a127b58.js +0 -82
  75. package/_internal/5a127b58.js.map +0 -1
  76. package/_internal/5a1c0db4.js +0 -156
  77. package/_internal/5a1c0db4.js.map +0 -1
  78. package/_internal/5babcc39.js +0 -147
  79. package/_internal/5babcc39.js.map +0 -1
  80. package/_internal/5c1bf4d4.d.ts +0 -81
  81. package/_internal/5d8ed4ee.js +0 -113
  82. package/_internal/5d8ed4ee.js.map +0 -1
  83. package/_internal/616f2912.js +0 -301
  84. package/_internal/616f2912.js.map +0 -1
  85. package/_internal/61f915de.d.ts +0 -49
  86. package/_internal/620081fa.js +0 -122
  87. package/_internal/620081fa.js.map +0 -1
  88. package/_internal/6340c129.js.map +0 -1
  89. package/_internal/6581c863.d.ts +0 -34
  90. package/_internal/66de4d45.d.ts +0 -32
  91. package/_internal/6735c5c8.d.ts +0 -62
  92. package/_internal/69dd1472.js +0 -112
  93. package/_internal/69dd1472.js.map +0 -1
  94. package/_internal/6a0e1c77.js +0 -327
  95. package/_internal/6a0e1c77.js.map +0 -1
  96. package/_internal/701c20b0.d.ts +0 -24
  97. package/_internal/7391188a.js +0 -81
  98. package/_internal/7391188a.js.map +0 -1
  99. package/_internal/74cb6c26.js +0 -136
  100. package/_internal/74cb6c26.js.map +0 -1
  101. package/_internal/761031bf.js +0 -314
  102. package/_internal/761031bf.js.map +0 -1
  103. package/_internal/76fed69d.js +0 -50
  104. package/_internal/76fed69d.js.map +0 -1
  105. package/_internal/78ef8e34.js +0 -40
  106. package/_internal/78ef8e34.js.map +0 -1
  107. package/_internal/7b906e16.d.ts +0 -17
  108. package/_internal/7be11ddc.d.ts +0 -35
  109. package/_internal/7d39705e.d.ts +0 -20
  110. package/_internal/7e03266f.js +0 -47
  111. package/_internal/7e03266f.js.map +0 -1
  112. package/_internal/7e8d0ac5.js +0 -84
  113. package/_internal/7e8d0ac5.js.map +0 -1
  114. package/_internal/7ffa45f6.js +0 -48
  115. package/_internal/7ffa45f6.js.map +0 -1
  116. package/_internal/84c1ec44.js +0 -257
  117. package/_internal/84c1ec44.js.map +0 -1
  118. package/_internal/8518279f.js +0 -96
  119. package/_internal/8518279f.js.map +0 -1
  120. package/_internal/853713cd.js +0 -25
  121. package/_internal/853713cd.js.map +0 -1
  122. package/_internal/86566d75.d.ts +0 -27
  123. package/_internal/86d22dde.d.ts +0 -57
  124. package/_internal/8e755ded.d.ts +0 -101
  125. package/_internal/901471f5.d.ts +0 -37
  126. package/_internal/935ce959.d.ts +0 -49
  127. package/_internal/97089888.d.ts +0 -16
  128. package/_internal/97cc728c.d.ts +0 -26
  129. package/_internal/9ab3c637.js +0 -2474
  130. package/_internal/9ab3c637.js.map +0 -1
  131. package/_internal/9ca3f59c.js +0 -60
  132. package/_internal/9ca3f59c.js.map +0 -1
  133. package/_internal/9e95ea38.d.ts +0 -43
  134. package/_internal/a0108f92.js +0 -84
  135. package/_internal/a0108f92.js.map +0 -1
  136. package/_internal/a493a193.d.ts +0 -65
  137. package/_internal/a521723d.js +0 -120
  138. package/_internal/a521723d.js.map +0 -1
  139. package/_internal/a6fad025.d.ts +0 -107
  140. package/_internal/a8fa525f.js +0 -124
  141. package/_internal/a8fa525f.js.map +0 -1
  142. package/_internal/aca2ecf5.js +0 -141
  143. package/_internal/aca2ecf5.js.map +0 -1
  144. package/_internal/aef2ef1c.js +0 -53
  145. package/_internal/aef2ef1c.js.map +0 -1
  146. package/_internal/af048b0c.js +0 -89
  147. package/_internal/af048b0c.js.map +0 -1
  148. package/_internal/af2cd0cd.d.ts +0 -17
  149. package/_internal/afec6b62.js +0 -864
  150. package/_internal/afec6b62.js.map +0 -1
  151. package/_internal/b0eb3a30.js +0 -72
  152. package/_internal/b0eb3a30.js.map +0 -1
  153. package/_internal/b89517ea.js +0 -275
  154. package/_internal/b89517ea.js.map +0 -1
  155. package/_internal/bafa6fcc.js +0 -116
  156. package/_internal/bafa6fcc.js.map +0 -1
  157. package/_internal/bbbeb49e.js +0 -47
  158. package/_internal/bbbeb49e.js.map +0 -1
  159. package/_internal/c11f6162.d.ts +0 -52
  160. package/_internal/c723dab4.js +0 -133
  161. package/_internal/c723dab4.js.map +0 -1
  162. package/_internal/c87cc857.d.ts +0 -42
  163. package/_internal/c97f8d04.js +0 -424
  164. package/_internal/c97f8d04.js.map +0 -1
  165. package/_internal/cbb373ea.d.ts +0 -6
  166. package/_internal/cbef23b6.d.ts +0 -104
  167. package/_internal/cdf77f06.d.ts +0 -88
  168. package/_internal/d350f2ff.js +0 -105
  169. package/_internal/d350f2ff.js.map +0 -1
  170. package/_internal/d71a8cf7.js +0 -54
  171. package/_internal/d71a8cf7.js.map +0 -1
  172. package/_internal/d9337952.js +0 -96
  173. package/_internal/d9337952.js.map +0 -1
  174. package/_internal/def14e1a.d.ts +0 -24
  175. package/_internal/e0cd29c7.d.ts +0 -35
  176. package/_internal/e354228f.js +0 -145
  177. package/_internal/e354228f.js.map +0 -1
  178. package/_internal/e3922a05.d.ts +0 -22
  179. package/_internal/e3cb6177.d.ts +0 -75
  180. package/_internal/e810c841.d.ts +0 -182
  181. package/_internal/ea700b01.d.ts +0 -43
  182. package/_internal/eed07003.js +0 -122
  183. package/_internal/eed07003.js.map +0 -1
  184. package/_internal/f1c9b334.d.ts +0 -22
  185. package/_internal/f3c3a674.js +0 -281
  186. package/_internal/f3c3a674.js.map +0 -1
  187. package/_internal/f571cdcd.js +0 -132
  188. package/_internal/f571cdcd.js.map +0 -1
  189. package/_internal/f5bdff7e.js +0 -282
  190. package/_internal/f5bdff7e.js.map +0 -1
  191. package/_internal/f851fc00.d.ts +0 -34
  192. package/_internal/f859b007.d.ts +0 -49
  193. package/_internal/fb384b79.d.ts +0 -38
  194. package/_internal/fc4c034b.js +0 -63
  195. package/_internal/fc4c034b.js.map +0 -1
  196. package/_internal/fc608bd9.js +0 -16
  197. package/_internal/fc608bd9.js.map +0 -1
  198. package/_internal/fd1f4d68.d.ts +0 -36
  199. package/_internal/fd867c9d.js +0 -346
  200. package/_internal/fd867c9d.js.map +0 -1
  201. package/_internal/ff8081e5.js +0 -57
  202. package/_internal/ff8081e5.js.map +0 -1
  203. package/_internal/ffd1bfe3.js +0 -123
  204. package/_internal/ffd1bfe3.js.map +0 -1
  205. package/components/alert-dialog.d.ts +0 -6
  206. package/components/alert-dialog.js +0 -2
  207. package/components/alert-dialog.js.map +0 -1
  208. package/components/autocomplete.d.ts +0 -8
  209. package/components/autocomplete.js +0 -2
  210. package/components/autocomplete.js.map +0 -1
  211. package/components/avatar.d.ts +0 -4
  212. package/components/avatar.js +0 -2
  213. package/components/avatar.js.map +0 -1
  214. package/components/badge.d.ts +0 -3
  215. package/components/badge.js +0 -2
  216. package/components/badge.js.map +0 -1
  217. package/components/button.d.ts +0 -8
  218. package/components/button.js +0 -4
  219. package/components/button.js.map +0 -1
  220. package/components/checkbox.d.ts +0 -3
  221. package/components/checkbox.js +0 -2
  222. package/components/checkbox.js.map +0 -1
  223. package/components/chip.d.ts +0 -3
  224. package/components/chip.js +0 -3
  225. package/components/chip.js.map +0 -1
  226. package/components/comment-block.d.ts +0 -5
  227. package/components/comment-block.js +0 -2
  228. package/components/comment-block.js.map +0 -1
  229. package/components/date-picker.d.ts +0 -7
  230. package/components/date-picker.js +0 -2
  231. package/components/date-picker.js.map +0 -1
  232. package/components/dialog.d.ts +0 -3
  233. package/components/dialog.js +0 -2
  234. package/components/dialog.js.map +0 -1
  235. package/components/divider.d.ts +0 -3
  236. package/components/divider.js +0 -2
  237. package/components/divider.js.map +0 -1
  238. package/components/drag-handle.d.ts +0 -3
  239. package/components/drag-handle.js +0 -2
  240. package/components/drag-handle.js.map +0 -1
  241. package/components/dropdown.d.ts +0 -4
  242. package/components/dropdown.js +0 -2
  243. package/components/dropdown.js.map +0 -1
  244. package/components/expansion-panel.d.ts +0 -7
  245. package/components/expansion-panel.js +0 -2
  246. package/components/expansion-panel.js.map +0 -1
  247. package/components/flag.d.ts +0 -3
  248. package/components/flag.js +0 -2
  249. package/components/flag.js.map +0 -1
  250. package/components/flex-box.d.ts +0 -3
  251. package/components/flex-box.js +0 -2
  252. package/components/flex-box.js.map +0 -1
  253. package/components/generic-block.d.ts +0 -4
  254. package/components/generic-block.js +0 -2
  255. package/components/generic-block.js.map +0 -1
  256. package/components/grid.d.ts +0 -3
  257. package/components/grid.js +0 -2
  258. package/components/grid.js.map +0 -1
  259. package/components/heading.d.ts +0 -4
  260. package/components/heading.js +0 -2
  261. package/components/heading.js.map +0 -1
  262. package/components/icon.d.ts +0 -3
  263. package/components/icon.js +0 -2
  264. package/components/icon.js.map +0 -1
  265. package/components/image-block.d.ts +0 -4
  266. package/components/image-block.js +0 -2
  267. package/components/image-block.js.map +0 -1
  268. package/components/input-helper.d.ts +0 -3
  269. package/components/input-helper.js +0 -2
  270. package/components/input-helper.js.map +0 -1
  271. package/components/input-label.d.ts +0 -3
  272. package/components/input-label.js +0 -2
  273. package/components/input-label.js.map +0 -1
  274. package/components/lightbox.d.ts +0 -7
  275. package/components/lightbox.js +0 -2
  276. package/components/lightbox.js.map +0 -1
  277. package/components/link-preview.d.ts +0 -5
  278. package/components/link-preview.js +0 -2
  279. package/components/link-preview.js.map +0 -1
  280. package/components/link.d.ts +0 -3
  281. package/components/link.js +0 -2
  282. package/components/link.js.map +0 -1
  283. package/components/list.d.ts +0 -3
  284. package/components/list.js +0 -3
  285. package/components/list.js.map +0 -1
  286. package/components/message.d.ts +0 -3
  287. package/components/message.js +0 -2
  288. package/components/message.js.map +0 -1
  289. package/components/mosaic.d.ts +0 -4
  290. package/components/mosaic.js +0 -2
  291. package/components/mosaic.js.map +0 -1
  292. package/components/notification.d.ts +0 -3
  293. package/components/notification.js +0 -2
  294. package/components/notification.js.map +0 -1
  295. package/components/popover.d.ts +0 -3
  296. package/components/popover.js +0 -2
  297. package/components/popover.js.map +0 -1
  298. package/components/post-block.d.ts +0 -4
  299. package/components/post-block.js +0 -2
  300. package/components/post-block.js.map +0 -1
  301. package/components/progress-tracker.d.ts +0 -3
  302. package/components/progress-tracker.js +0 -2
  303. package/components/progress-tracker.js.map +0 -1
  304. package/components/progress.d.ts +0 -3
  305. package/components/progress.js +0 -2
  306. package/components/progress.js.map +0 -1
  307. package/components/radio-button.d.ts +0 -3
  308. package/components/radio-button.js +0 -2
  309. package/components/radio-button.js.map +0 -1
  310. package/components/select.d.ts +0 -7
  311. package/components/select.js +0 -2
  312. package/components/select.js.map +0 -1
  313. package/components/side-navigation.d.ts +0 -7
  314. package/components/side-navigation.js +0 -2
  315. package/components/side-navigation.js.map +0 -1
  316. package/components/skeleton.d.ts +0 -3
  317. package/components/skeleton.js +0 -2
  318. package/components/skeleton.js.map +0 -1
  319. package/components/slider.d.ts +0 -3
  320. package/components/slider.js +0 -2
  321. package/components/slider.js.map +0 -1
  322. package/components/slideshow.d.ts +0 -7
  323. package/components/slideshow.js +0 -2
  324. package/components/slideshow.js.map +0 -1
  325. package/components/switch.d.ts +0 -3
  326. package/components/switch.js +0 -2
  327. package/components/switch.js.map +0 -1
  328. package/components/table.d.ts +0 -3
  329. package/components/table.js +0 -2
  330. package/components/table.js.map +0 -1
  331. package/components/tabs.d.ts +0 -4
  332. package/components/tabs.js +0 -2
  333. package/components/tabs.js.map +0 -1
  334. package/components/text-field.d.ts +0 -7
  335. package/components/text-field.js +0 -2
  336. package/components/text-field.js.map +0 -1
  337. package/components/text.d.ts +0 -3
  338. package/components/text.js +0 -2
  339. package/components/text.js.map +0 -1
  340. package/components/thumbnail.d.ts +0 -4
  341. package/components/thumbnail.js +0 -3
  342. package/components/thumbnail.js.map +0 -1
  343. package/components/toolbar.d.ts +0 -3
  344. package/components/toolbar.js +0 -2
  345. package/components/toolbar.js.map +0 -1
  346. package/components/tooltip.d.ts +0 -4
  347. package/components/tooltip.js +0 -2
  348. package/components/tooltip.js.map +0 -1
  349. package/components/uploader.d.ts +0 -3
  350. package/components/uploader.js +0 -2
  351. package/components/uploader.js.map +0 -1
  352. package/components/user-block.d.ts +0 -5
  353. package/components/user-block.js +0 -2
  354. package/components/user-block.js.map +0 -1
  355. package/components.d.ts +0 -2
  356. package/components.js +0 -156
  357. package/components.js.map +0 -1
@@ -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