@semcore/carousel 3.42.5 → 3.43.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/cjs/Carousel.js +79 -57
  3. package/lib/cjs/Carousel.js.map +1 -1
  4. package/lib/cjs/style/carousel.shadow.css +48 -4
  5. package/lib/cjs/translations/de.json +4 -2
  6. package/lib/cjs/translations/en.json +4 -2
  7. package/lib/cjs/translations/es.json +4 -2
  8. package/lib/cjs/translations/fr.json +4 -2
  9. package/lib/cjs/translations/it.json +4 -2
  10. package/lib/cjs/translations/ja.json +4 -2
  11. package/lib/cjs/translations/ko.json +4 -2
  12. package/lib/cjs/translations/nl.json +4 -2
  13. package/lib/cjs/translations/pl.json +4 -2
  14. package/lib/cjs/translations/pt.json +4 -2
  15. package/lib/cjs/translations/sv.json +4 -2
  16. package/lib/cjs/translations/tr.json +4 -2
  17. package/lib/cjs/translations/vi.json +4 -2
  18. package/lib/cjs/translations/zh.json +4 -2
  19. package/lib/es6/Carousel.js +79 -57
  20. package/lib/es6/Carousel.js.map +1 -1
  21. package/lib/es6/style/carousel.shadow.css +48 -4
  22. package/lib/es6/translations/de.json +4 -2
  23. package/lib/es6/translations/en.json +4 -2
  24. package/lib/es6/translations/es.json +4 -2
  25. package/lib/es6/translations/fr.json +4 -2
  26. package/lib/es6/translations/it.json +4 -2
  27. package/lib/es6/translations/ja.json +4 -2
  28. package/lib/es6/translations/ko.json +4 -2
  29. package/lib/es6/translations/nl.json +4 -2
  30. package/lib/es6/translations/pl.json +4 -2
  31. package/lib/es6/translations/pt.json +4 -2
  32. package/lib/es6/translations/sv.json +4 -2
  33. package/lib/es6/translations/tr.json +4 -2
  34. package/lib/es6/translations/vi.json +4 -2
  35. package/lib/es6/translations/zh.json +4 -2
  36. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +28 -0
  37. package/package.json +7 -7
  38. package/src/Carousel.tsx +62 -32
  39. package/src/style/carousel.shadow.css +48 -4
  40. package/src/translations/de.json +4 -2
  41. package/src/translations/en.json +4 -2
  42. package/src/translations/es.json +4 -2
  43. package/src/translations/fr.json +4 -2
  44. package/src/translations/it.json +4 -2
  45. package/src/translations/ja.json +4 -2
  46. package/src/translations/ko.json +4 -2
  47. package/src/translations/nl.json +4 -2
  48. package/src/translations/pl.json +4 -2
  49. package/src/translations/pt.json +4 -2
  50. package/src/translations/sv.json +4 -2
  51. package/src/translations/tr.json +4 -2
  52. package/src/translations/vi.json +4 -2
  53. package/src/translations/zh.json +4 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [3.43.4] - 2024-09-06
6
+
7
+ ### Fixed
8
+
9
+ - Carousel controls are not focusable and available to be navigated to each control by screen readers.
10
+
5
11
  ## [3.42.5] - 2024-09-06
6
12
 
7
13
  ### Changed
@@ -31,27 +31,27 @@ var _findComponent = require("@semcore/utils/lib/findComponent");
31
31
  var _breakpoints = require("@semcore/breakpoints");
32
32
  var _keyboardFocusEnhance = _interopRequireDefault(require("@semcore/utils/lib/enhances/keyboardFocusEnhance"));
33
33
  /*__reshadow-styles__:"./style/carousel.shadow.css"*/
34
- var style = ( /*__reshadow_css_start__*/_index2.sstyled.insert( /*__inner_css_start__*/".___SCarousel_1pqd9_gg_{overflow:hidden;outline:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.___SCarousel_1pqd9_gg_.__keyboardFocused_1pqd9_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1}.___SContainer_1pqd9_gg_{display:flex;transition:transform var(--duration_1pqd9) ease-in-out}.___SContentBox_1pqd9_gg_,.___SModalBox_1pqd9_gg_{overflow:hidden;border-radius:var(--intergalactic-surface-rounded, 6px)}.___SModalContainer_1pqd9_gg_{display:flex;transition:transform var(--duration_1pqd9) ease-in-out}.___SItem_1pqd9_gg_{flex:0 0 100%;max-width:100%;box-sizing:border-box;transform:var(--transform_1pqd9);border-radius:var(--intergalactic-surface-rounded, 6px);overflow:hidden}.___SItem_1pqd9_gg_.__zoomIn_1pqd9_gg_{cursor:zoom-in}.___SItem_1pqd9_gg_.__zoomOut_1pqd9_gg_{cursor:zoom-out}.___SIndicators_1pqd9_gg_{display:flex;justify-content:center;margin-top:var(--intergalactic-spacing-4x, 16px)}.___SIndicator_1pqd9_gg_{margin:0 calc(.5*var(--intergalactic-spacing-3x, 12px));cursor:pointer;display:block;width:12px;height:12px;border-radius:var(--intergalactic-control-rounded, 6px);background-color:var(--intergalactic-icon-secondary-neutral, #a9abb6);opacity:var(--intergalactic-disabled-opacity, 0.3);-o-object-fit:cover;object-fit:cover;transition:ease-in-out opacity .1s}@media (hover:hover){.___SIndicator_1pqd9_gg_:hover{opacity:calc(2*var(--intergalactic-disabled-opacity, 0.3))}}.___SIndicator_1pqd9_gg_.__active_1pqd9_gg_{opacity:1}.___SIndicator_1pqd9_gg_.__inverted_1pqd9_gg_{background-color:var(--intergalactic-icon-primary-invert, #ffffff)}.___SNext_1pqd9_gg_,.___SPrev_1pqd9_gg_{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--intergalactic-icon-primary-neutral, #6c6e79)}.___SNext_1pqd9_gg_ .___SNextButton_1pqd9_gg_ span:has(>svg:only-child),.___SNext_1pqd9_gg_ .___SPrevButton_1pqd9_gg_ span:has(>svg:only-child),.___SPrev_1pqd9_gg_ .___SNextButton_1pqd9_gg_ span:has(>svg:only-child),.___SPrev_1pqd9_gg_ .___SPrevButton_1pqd9_gg_ span:has(>svg:only-child){margin-left:calc(2*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(2*var(--intergalactic-spacing-1x, 4px) - 1px)}.___SPrev_1pqd9_gg_{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SNext_1pqd9_gg_{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SNext_1pqd9_gg_.__disabled_1pqd9_gg_,.___SPrev_1pqd9_gg_.__disabled_1pqd9_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}@media (prefers-reduced-motion){.___SContainer_1pqd9_gg_{transition:none}}" /*__inner_css_end__*/, "1pqd9_gg_") /*__reshadow_css_end__*/, {
35
- "__SCarousel": "___SCarousel_1pqd9_gg_",
36
- "_keyboardFocused": "__keyboardFocused_1pqd9_gg_",
37
- "__SContainer": "___SContainer_1pqd9_gg_",
38
- "--duration": "--duration_1pqd9",
39
- "__SContentBox": "___SContentBox_1pqd9_gg_",
40
- "__SModalBox": "___SModalBox_1pqd9_gg_",
41
- "__SModalContainer": "___SModalContainer_1pqd9_gg_",
42
- "__SItem": "___SItem_1pqd9_gg_",
43
- "--transform": "--transform_1pqd9",
44
- "_zoomIn": "__zoomIn_1pqd9_gg_",
45
- "_zoomOut": "__zoomOut_1pqd9_gg_",
46
- "__SIndicators": "___SIndicators_1pqd9_gg_",
47
- "__SIndicator": "___SIndicator_1pqd9_gg_",
48
- "_active": "__active_1pqd9_gg_",
49
- "_inverted": "__inverted_1pqd9_gg_",
50
- "__SPrev": "___SPrev_1pqd9_gg_",
51
- "__SNext": "___SNext_1pqd9_gg_",
52
- "_disabled": "__disabled_1pqd9_gg_",
53
- "__SPrevButton": "___SPrevButton_1pqd9_gg_",
54
- "__SNextButton": "___SNextButton_1pqd9_gg_"
34
+ var style = ( /*__reshadow_css_start__*/_index2.sstyled.insert( /*__inner_css_start__*/".___SCarousel_11eq6_gg_{overflow:hidden;outline:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.___SContainer_11eq6_gg_{display:flex;transition:transform var(--duration_11eq6) ease-in-out}.___SContentBox_11eq6_gg_,.___SModalBox_11eq6_gg_{position:relative;overflow:hidden;border-radius:var(--intergalactic-surface-rounded, 6px)}.___SContentBox_11eq6_gg_:has(.___SItem_11eq6_gg_.__keyboardFocused_11eq6_gg_):after,.___SModalBox_11eq6_gg_:has(.___SItem_11eq6_gg_.__keyboardFocused_11eq6_gg_):after{content:\"\";display:block;position:absolute;box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1;width:calc(100% - 3px*2);height:calc(100% - 3px*2);top:3px;left:3px}.___SModalContainer_11eq6_gg_{display:flex;transition:transform var(--duration_11eq6) ease-in-out}.___SItem_11eq6_gg_{flex:0 0 100%;max-width:100%;box-sizing:border-box;transform:var(--transform_11eq6);border-radius:var(--intergalactic-surface-rounded, 6px);overflow:hidden;outline:0}.___SItem_11eq6_gg_.__zoomIn_11eq6_gg_{cursor:zoom-in}.___SItem_11eq6_gg_.__zoomOut_11eq6_gg_{cursor:zoom-out}.___SIndicators_11eq6_gg_{display:flex;justify-content:center;margin-top:var(--intergalactic-spacing-4x, 16px);outline:0;position:relative}.___SIndicators_11eq6_gg_.__keyboardFocused_11eq6_gg_:after{content:\"\";display:block;position:absolute;box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1;width:calc(100% - 3px*2);height:calc(100% - 3px);top:0;left:3px}.___SIndicator_11eq6_gg_{margin:0 calc(.5*var(--intergalactic-spacing-3x, 12px));cursor:pointer;display:block;width:12px;height:12px;border-radius:var(--intergalactic-control-rounded, 6px);background-color:var(--intergalactic-icon-secondary-neutral, #a9abb6);opacity:var(--intergalactic-disabled-opacity, 0.3);-o-object-fit:cover;object-fit:cover;transition:ease-in-out opacity .1s}@media (hover:hover){.___SIndicator_11eq6_gg_:hover{opacity:calc(2*var(--intergalactic-disabled-opacity, 0.3))}}.___SIndicator_11eq6_gg_.__active_11eq6_gg_{opacity:1}.___SIndicator_11eq6_gg_.__inverted_11eq6_gg_{background-color:var(--intergalactic-icon-primary-invert, #ffffff)}.___SNext_11eq6_gg_,.___SPrev_11eq6_gg_{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--intergalactic-icon-primary-neutral, #6c6e79)}.___SNext_11eq6_gg_ .___SNextButton_11eq6_gg_ span:has(>svg:only-child),.___SNext_11eq6_gg_ .___SPrevButton_11eq6_gg_ span:has(>svg:only-child),.___SPrev_11eq6_gg_ .___SNextButton_11eq6_gg_ span:has(>svg:only-child),.___SPrev_11eq6_gg_ .___SPrevButton_11eq6_gg_ span:has(>svg:only-child){margin-left:calc(2*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(2*var(--intergalactic-spacing-1x, 4px) - 1px)}.___SNextButton_11eq6_gg_:focus-visible,.___SPrevButton_11eq6_gg_:focus-visible{box-shadow:none}.___SNextButton_11eq6_gg_:focus-visible:after,.___SPrevButton_11eq6_gg_:focus-visible:after{content:\"\";display:block;position:absolute;box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1;width:calc(100% - 3px*2);height:calc(100% - 3px*2);top:3px;left:3px;border-radius:var(--intergalactic-control-rounded, 6px)}.___SPrev_11eq6_gg_{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SNext_11eq6_gg_{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SNext_11eq6_gg_.__disabled_11eq6_gg_,.___SPrev_11eq6_gg_.__disabled_11eq6_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}@media (prefers-reduced-motion){.___SContainer_11eq6_gg_{transition:none}}" /*__inner_css_end__*/, "11eq6_gg_") /*__reshadow_css_end__*/, {
35
+ "__SCarousel": "___SCarousel_11eq6_gg_",
36
+ "__SContainer": "___SContainer_11eq6_gg_",
37
+ "--duration": "--duration_11eq6",
38
+ "__SModalContainer": "___SModalContainer_11eq6_gg_",
39
+ "__SItem": "___SItem_11eq6_gg_",
40
+ "--transform": "--transform_11eq6",
41
+ "_zoomIn": "__zoomIn_11eq6_gg_",
42
+ "_zoomOut": "__zoomOut_11eq6_gg_",
43
+ "__SIndicators": "___SIndicators_11eq6_gg_",
44
+ "_keyboardFocused": "__keyboardFocused_11eq6_gg_",
45
+ "__SIndicator": "___SIndicator_11eq6_gg_",
46
+ "_active": "__active_11eq6_gg_",
47
+ "_inverted": "__inverted_11eq6_gg_",
48
+ "__SPrev": "___SPrev_11eq6_gg_",
49
+ "__SNext": "___SNext_11eq6_gg_",
50
+ "_disabled": "__disabled_11eq6_gg_",
51
+ "__SContentBox": "___SContentBox_11eq6_gg_",
52
+ "__SModalBox": "___SModalBox_11eq6_gg_",
53
+ "__SPrevButton": "___SPrevButton_11eq6_gg_",
54
+ "__SNextButton": "___SNextButton_11eq6_gg_"
55
55
  });
56
56
  var MAP_TRANSFORM = {
57
57
  ArrowLeft: 'left',
@@ -59,8 +59,7 @@ var MAP_TRANSFORM = {
59
59
  };
60
60
  var enhance = {
61
61
  uid: (0, _uniqueID["default"])(),
62
- getI18nText: (0, _i18nEnhance["default"])(_intergalacticDynamicLocales.localizedMessages),
63
- keyboardFocusEnhance: (0, _keyboardFocusEnhance["default"])()
62
+ i18nEnahnce: (0, _i18nEnhance["default"])(_intergalacticDynamicLocales.localizedMessages)
64
63
  };
65
64
  var media = ['(min-width: 481px)', '(max-width: 480px)'];
66
65
  var BreakPoints = (0, _breakpoints.createBreakpoints)(media);
@@ -347,7 +346,8 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
347
346
  value: function getPrevProps() {
348
347
  var _this$asProps = this.asProps,
349
348
  bounded = _this$asProps.bounded,
350
- getI18nText = _this$asProps.getI18nText;
349
+ getI18nText = _this$asProps.getI18nText,
350
+ uid = _this$asProps.uid;
351
351
  var _this$state3 = this.state,
352
352
  items = _this$state3.items,
353
353
  selectedIndex = _this$state3.selectedIndex;
@@ -360,7 +360,7 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
360
360
  onKeyDown: this.bindHandlerKeydownControl('left'),
361
361
  disabled: disabled,
362
362
  label: getI18nText('prev'),
363
- tabIndex: -1
363
+ 'aria-controls': "igc-".concat(uid, "-carousel")
364
364
  };
365
365
  }
366
366
  }, {
@@ -368,7 +368,8 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
368
368
  value: function getNextProps() {
369
369
  var _this$asProps2 = this.asProps,
370
370
  bounded = _this$asProps2.bounded,
371
- getI18nText = _this$asProps2.getI18nText;
371
+ getI18nText = _this$asProps2.getI18nText,
372
+ uid = _this$asProps2.uid;
372
373
  var _this$state4 = this.state,
373
374
  items = _this$state4.items,
374
375
  selectedIndex = _this$state4.selectedIndex;
@@ -381,7 +382,7 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
381
382
  onKeyDown: this.bindHandlerKeydownControl('right'),
382
383
  disabled: disabled,
383
384
  label: getI18nText('next'),
384
- tabIndex: -1
385
+ 'aria-controls': "igc-".concat(uid, "-carousel")
385
386
  };
386
387
  }
387
388
  }, {
@@ -389,6 +390,7 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
389
390
  value: function getIndicatorsProps() {
390
391
  var _this4 = this;
391
392
  var items = this.state.items;
393
+ var getI18nText = this.asProps.getI18nText;
392
394
  return {
393
395
  items: items.map(function (item, key) {
394
396
  return {
@@ -396,6 +398,22 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
396
398
  onClick: _this4.bindHandlerClickIndicator(key),
397
399
  key: key
398
400
  };
401
+ }),
402
+ role: 'tablist',
403
+ 'aria-label': getI18nText('slides')
404
+ };
405
+ }
406
+ }, {
407
+ key: "getIndicatorProps",
408
+ value: function getIndicatorProps(_, index) {
409
+ var isCurrent = this.isSelected(index);
410
+ var getI18nText = this.asProps.getI18nText;
411
+ return {
412
+ role: 'tab',
413
+ 'aria-selected': isCurrent,
414
+ 'aria-controls': "igc-".concat(this.asProps.uid, "-carousel-item-").concat(index),
415
+ 'aria-label': getI18nText('slide', {
416
+ slideNumber: index + 1
399
417
  })
400
418
  };
401
419
  }
@@ -427,9 +445,7 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
427
445
  }, {
428
446
  key: "isSelected",
429
447
  value: function isSelected(index) {
430
- var _this$state7 = this.state,
431
- items = _this$state7.items,
432
- selectedIndex = _this$state7.selectedIndex;
448
+ var items = this.state.items;
433
449
  if (items.length === 0) {
434
450
  return true;
435
451
  }
@@ -447,10 +463,7 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
447
463
  styles = _this$asProps3.styles,
448
464
  uid = _this$asProps3.uid,
449
465
  duration = _this$asProps3.duration,
450
- hasZoom = _this$asProps3.zoom,
451
- zoomWidth = _this$asProps3.zoomWidth,
452
- ariaLabel = _this$asProps3['aria-label'],
453
- ariaRoledescription = _this$asProps3['aria-roledescription'];
466
+ zoomWidth = _this$asProps3.zoomWidth;
454
467
  var isOpenZoom = this.state.isOpenZoom;
455
468
  return _ref9 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_modal["default"], _ref9.cn("Modal", {
456
469
  "visible": isOpenZoom,
@@ -462,7 +475,7 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
462
475
  }), !isSmall && /*#__PURE__*/_react["default"].createElement(Carousel.Prev, {
463
476
  inverted: true
464
477
  }), /*#__PURE__*/_react["default"].createElement(SModalBox, _ref9.cn("SModalBox", {}), /*#__PURE__*/_react["default"].createElement(SModalContainer, _ref9.cn("SModalContainer", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
465
- "role": 'list',
478
+ "aria-live": 'polite',
466
479
  "use:duration": "".concat(duration, "ms"),
467
480
  "ref": this.refModalContainer,
468
481
  "use:w": undefined,
@@ -502,6 +515,7 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
502
515
  var _this$asProps4 = this.asProps,
503
516
  styles = _this$asProps4.styles,
504
517
  Children = _this$asProps4.Children,
518
+ uid = _this$asProps4.uid,
505
519
  hasZoom = _this$asProps4.zoom,
506
520
  ariaLabel = _this$asProps4['aria-label'],
507
521
  ariaRoledescription = _this$asProps4['aria-roledescription'],
@@ -509,13 +523,15 @@ var CarouselRoot = /*#__PURE__*/function (_Component) {
509
523
  var ComponentItems = (0, _findComponent.findAllComponents)(Children, ['Carousel.Item']);
510
524
  var Controls = (0, _findComponent.findAllComponents)(Children, ['Carousel.Prev', 'Carousel.Next', 'Carousel.Indicators']);
511
525
  return _ref10 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SCarousel, _ref10.cn("SCarousel", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
512
- "role": 'group',
526
+ "role": 'region',
527
+ "roledescription": 'carousel',
513
528
  "onKeyDown": this.handlerKeyDown,
514
529
  "onTouchStart": this.handlerTouchStart,
515
530
  "onTouchEnd": this.handlerTouchEnd,
516
- "ref": this.refCarousel
531
+ "ref": this.refCarousel,
532
+ "id": "igc-".concat(uid, "-carousel"),
533
+ "aria-roledescription": ariaRoledescription
517
534
  }, _ref2))), Controls.length === 0 ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_flexBox.Flex, _ref10.cn("Flex", {}), /*#__PURE__*/_react["default"].createElement(Carousel.Prev, null), /*#__PURE__*/_react["default"].createElement(SContentBox, _ref10.cn("SContentBox", {}), /*#__PURE__*/_react["default"].createElement(Carousel.Container, {
518
- "aria-roledescription": ariaRoledescription,
519
535
  "aria-label": ariaLabel
520
536
  }, /*#__PURE__*/_react["default"].createElement(Children, _ref10.cn("Children", {})))), /*#__PURE__*/_react["default"].createElement(Carousel.Next, null)), indicators === 'default' && /*#__PURE__*/_react["default"].createElement(Carousel.Indicators, null), indicators === 'preview' && /*#__PURE__*/_react["default"].createElement(Carousel.Indicators, null, function () {
521
537
  return ComponentItems.map(function (item, index) {
@@ -554,8 +570,8 @@ var Container = function Container(props) {
554
570
  var styles = props.styles,
555
571
  duration = props.duration;
556
572
  return _ref11 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainer, _ref11.cn("SContainer", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
557
- "role": 'list',
558
- "use:duration": "".concat(duration, "ms")
573
+ "use:duration": "".concat(duration, "ms"),
574
+ "aria-live": 'polite'
559
575
  }, _ref3))));
560
576
  };
561
577
  var Item = /*#__PURE__*/function (_Component2) {
@@ -569,6 +585,7 @@ var Item = /*#__PURE__*/function (_Component2) {
569
585
  }
570
586
  _this7 = _super2.call.apply(_super2, [this].concat(args));
571
587
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this7), "refItem", /*#__PURE__*/_react["default"].createRef());
588
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this7), "keepFocusTimeout", void 0);
572
589
  return _this7;
573
590
  }
574
591
  (0, _createClass2["default"])(Item, [{
@@ -593,15 +610,25 @@ var Item = /*#__PURE__*/function (_Component2) {
593
610
  toggleItem && refItem && toggleItem({
594
611
  node: refItem
595
612
  }, true);
613
+ clearTimeout(this.keepFocusTimeout);
596
614
  }
597
615
  }, {
598
616
  key: "componentDidUpdate",
599
617
  value: function componentDidUpdate(prevProps) {
618
+ clearTimeout(this.keepFocusTimeout);
600
619
  var transform = this.props.transform;
601
620
  var refItem = this.refItem.current;
602
621
  if (prevProps.transform !== transform && refItem) {
603
622
  refItem.style.transform = "translateX(".concat(transform, "%)");
604
623
  }
624
+ if (this.props.current) {
625
+ this.keepFocusTimeout = setTimeout(function () {
626
+ var _document$activeEleme;
627
+ if (document.activeElement !== refItem && ((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.dataset.carousel) === (refItem === null || refItem === void 0 ? void 0 : refItem.dataset.carousel)) {
628
+ refItem === null || refItem === void 0 ? void 0 : refItem.focus();
629
+ }
630
+ }, 100);
631
+ }
605
632
  }
606
633
  }, {
607
634
  key: "render",
@@ -614,14 +641,15 @@ var Item = /*#__PURE__*/function (_Component2) {
614
641
  uid = _this$props2.uid,
615
642
  current = _this$props2.current,
616
643
  zoomIn = _this$props2.zoomIn,
617
- onToggleZoomModal = _this$props2.onToggleZoomModal,
618
- transform = _this$props2.transform;
644
+ onToggleZoomModal = _this$props2.onToggleZoomModal;
619
645
  var SItem = _flexBox.Box;
620
646
  return _ref12 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SItem, _ref12.cn("SItem", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
621
647
  "ref": this.refItem,
622
- "role": 'listitem',
648
+ "role": 'tabpanel',
649
+ "data-carousel": "igc-".concat(uid, "-carousel"),
623
650
  "id": "igc-".concat(uid, "-carousel-item-").concat(index),
624
651
  "aria-current": current,
652
+ "use:tabIndex": current ? 0 : -1,
625
653
  "onClick": zoomIn ? onToggleZoomModal : undefined,
626
654
  "zoomIn": zoomIn
627
655
  }, _ref4))));
@@ -629,6 +657,7 @@ var Item = /*#__PURE__*/function (_Component2) {
629
657
  }]);
630
658
  return Item;
631
659
  }(_core.Component);
660
+ (0, _defineProperty2["default"])(Item, "enhance", [(0, _keyboardFocusEnhance["default"])(false)]);
632
661
  var Prev = function Prev(props) {
633
662
  var _ref5 = arguments[0],
634
663
  _ref13;
@@ -638,8 +667,7 @@ var Prev = function Prev(props) {
638
667
  label = props.label,
639
668
  _props$top = props.top,
640
669
  top = _props$top === void 0 ? 0 : _props$top,
641
- inverted = props.inverted,
642
- tabIndex = props.tabIndex;
670
+ inverted = props.inverted;
643
671
  var SPrev = _flexBox.Box;
644
672
  var SPrevButton = _button["default"];
645
673
  return _ref13 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SPrev, _ref13.cn("SPrev", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
@@ -649,8 +677,7 @@ var Prev = function Prev(props) {
649
677
  "aria-label": label,
650
678
  "theme": inverted ? 'invert' : 'muted',
651
679
  "use": 'tertiary',
652
- "size": 'l',
653
- "tabIndex": tabIndex
680
+ "size": 'l'
654
681
  })));
655
682
  };
656
683
  var Next = function Next(props) {
@@ -662,8 +689,7 @@ var Next = function Next(props) {
662
689
  label = props.label,
663
690
  _props$top2 = props.top,
664
691
  top = _props$top2 === void 0 ? 0 : _props$top2,
665
- inverted = props.inverted,
666
- tabIndex = props.tabIndex;
692
+ inverted = props.inverted;
667
693
  var SNext = _flexBox.Box;
668
694
  var SNextButton = _button["default"];
669
695
  return _ref14 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SNext, _ref14.cn("SNext", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
@@ -673,8 +699,7 @@ var Next = function Next(props) {
673
699
  "aria-label": label,
674
700
  "theme": inverted ? 'invert' : 'muted',
675
701
  "use": 'tertiary',
676
- "size": 'l',
677
- "tabIndex": tabIndex
702
+ "size": 'l'
678
703
  })));
679
704
  };
680
705
  var Indicators = function Indicators(_ref19) {
@@ -687,13 +712,9 @@ var Indicators = function Indicators(_ref19) {
687
712
  var SIndicators = _flexBox.Box;
688
713
  if (Children.origin) {
689
714
  var _ref15;
690
- return _ref15 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SIndicators, _ref15.cn("SIndicators", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
691
- "aria-hidden": 'true'
692
- }, _ref7))), /*#__PURE__*/_react["default"].createElement(Children, _ref15.cn("Children", {})));
715
+ return _ref15 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SIndicators, _ref15.cn("SIndicators", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({}, _ref7))), /*#__PURE__*/_react["default"].createElement(Children, _ref15.cn("Children", {})));
693
716
  }
694
- return _ref16 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SIndicators, _ref16.cn("SIndicators", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
695
- "aria-hidden": 'true'
696
- }, _ref7))), items === null || items === void 0 ? void 0 : items.map(function (item, index) {
717
+ return _ref16 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SIndicators, _ref16.cn("SIndicators", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({}, _ref7))), items === null || items === void 0 ? void 0 : items.map(function (item, index) {
697
718
  return /*#__PURE__*/_react["default"].createElement(Carousel.Indicator, (0, _extends2["default"])({
698
719
  key: index
699
720
  }, item, {
@@ -701,6 +722,7 @@ var Indicators = function Indicators(_ref19) {
701
722
  }));
702
723
  }));
703
724
  };
725
+ Indicators.enhance = [(0, _keyboardFocusEnhance["default"])()];
704
726
  var Indicator = function Indicator(_ref20) {
705
727
  var _ref8 = arguments[0],
706
728
  _ref17;
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_button","_modal","_flexBox","_l","_l2","_uniqueID","_i18nEnhance","_intergalacticDynamicLocales","_logger","_findComponent","_breakpoints","_keyboardFocusEnhance","style","_index2","sstyled","insert","MAP_TRANSFORM","ArrowLeft","ArrowRight","enhance","uid","uniqueIDEnhancement","getI18nText","i18nEnhance","localizedMessages","keyboardFocusEnhance","media","BreakPoints","createBreakpoints","isSmallScreen","index","CarouselRoot","_Component","_inherits2","_super","_createSuper2","props","_ref18","_props$index","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","React","createRef","e","firstSlide","lastSlide","state","items","length","key","preventDefault","transformItem","slideToValue","metaKey","item","removeItem","arguments","undefined","setState","prevState","newItems","filter","element","node","concat","_toConsumableArray2","defaultItemsCount","transform","selectedIndex","refContainer","current","refModalContainer","currentIndex","nextIndex","bounded","asProps","listIndex","map","_","ind","tmpArr","minTmpArr","maxTmpArr","unshift","pop","shift","push","tmpCurrentIndex","indexOf","left","direction","diff","Math","abs","_this$state","maxIndexIndicator","handlers","isControlled","transformContainer","getIndex","value","_this$state2","newValueIndex","floor","_touchStartCoord","changedTouches","clientX","touchEndCoord","delta","isOpenZoom","bindHandlerClick","defaultIndex","_createClass2","uncontrolledProps","_this2","_index","_this2$refCarousel$cu","refCarousel","blur","setTimeout","_this2$refCarousel$cu2","focus","componentDidMount","logger","warn","displayName","deprecatedComponents","findAllComponents","Children","componentDidUpdate","prevProps","_this3","getContainerProps","duration","ref","getItemProps","zoom","isCurrent","isSelected","toggleItem","zoomIn","onToggleZoomModal","handleToggleZoomModal","getTransform","getPrevProps","_this$asProps","_this$state3","disabled","onClick","onKeyDown","bindHandlerKeydownControl","label","tabIndex","getNextProps","_this$asProps2","_this$state4","getIndicatorsProps","_this4","active","bindHandlerClickIndicator","_this$state5","count","_this$state6","_this$state7","renderModal","isSmall","ComponentItems","_ref","_ref9","_this5","SModalContainer","Box","SModalBox","_this$asProps3","styles","hasZoom","zoomWidth","ariaLabel","ariaRoledescription","createElement","cn","Flex","Carousel","Prev","inverted","_objectSpread2","assignProps","i","Item","_extends2","zoomOut","Next","Indicators","render","_ref2","_ref10","_this6","SCarousel","SContentBox","_this$asProps4","indicators","Controls","handlerKeyDown","handlerTouchStart","handlerTouchEnd","Fragment","Container","Indicator","w","h","Context","Consumer","mediaIndex","Component","step","i18n","locale","Object","values","_ref3","arguments[0]","_ref11","SContainer","_Component2","_super2","_this7","_len","args","Array","_key","apply","_this$props","refItem","componentWillUnmount","_ref4","_ref12","_this$props2","SItem","_ref5","_ref13","children","_props$top","top","SPrev","SPrevButton","Button","ChevronLeft","_ref6","_ref14","_props$top2","SNext","SNextButton","ChevronRight","_ref19","_ref7","_ref16","SIndicators","origin","_ref15","_ref20","_ref8","_ref17","SIndicator","createComponent","_default","exports"],"sources":["../../src/Carousel.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Button from '@semcore/button';\nimport Modal from '@semcore/modal';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ChevronRight from '@semcore/icon/ChevronRight/l';\nimport ChevronLeft from '@semcore/icon/ChevronLeft/l';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport logger from '@semcore/utils/lib/logger';\nimport style from './style/carousel.shadow.css';\nimport CarouselType, {\n CarouselProps,\n CarouselState,\n CarouselContext,\n CarouselItem,\n CarouselItemProps,\n CarouselButtonProps,\n CarouselIndicatorsProps,\n CarouselIndicatorProps,\n} from './Carousel.types';\nimport { BoxProps } from '@semcore/flex-box';\nimport { findAllComponents } from '@semcore/utils/lib/findComponent';\nimport { createBreakpoints } from '@semcore/breakpoints';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nconst MAP_TRANSFORM: Record<string, 'left' | 'right'> = {\n ArrowLeft: 'left',\n ArrowRight: 'right',\n};\n\nconst enhance = {\n uid: uniqueIDEnhancement(),\n getI18nText: i18nEnhance(localizedMessages),\n keyboardFocusEnhance: keyboardFocusEnhance(),\n};\nconst media = ['(min-width: 481px)', '(max-width: 480px)'];\nconst BreakPoints = createBreakpoints(media);\nconst isSmallScreen = (index: number) => index === 1;\n\nclass CarouselRoot extends Component<\n CarouselProps,\n CarouselContext,\n CarouselState,\n typeof enhance\n> {\n static displayName = 'Carousel';\n static defaultProps = {\n defaultIndex: 0,\n duration: 350,\n step: 100,\n bounded: false,\n i18n: localizedMessages,\n locale: 'en',\n indicators: 'default',\n };\n\n static style = style;\n static enhance = Object.values(enhance);\n\n defaultItemsCount = 0;\n refCarousel = React.createRef<HTMLElement>();\n refContainer = React.createRef<HTMLElement>();\n refModalContainer = React.createRef<HTMLElement>();\n _touchStartCoord = -1;\n\n constructor(props: CarouselProps) {\n super(props);\n this.isControlled = props.index !== undefined;\n this.state = {\n items: [],\n isOpenZoom: false,\n selectedIndex: props.index ?? props.defaultIndex ?? 0,\n };\n }\n\n uncontrolledProps() {\n return {\n index: [\n null,\n (_index: number) => {\n this.refCarousel.current?.blur();\n setTimeout(() => {\n this.refCarousel.current?.focus();\n }, 0);\n },\n ],\n };\n }\n\n componentDidMount() {\n const { selectedIndex } = this.state;\n\n if (selectedIndex !== 0) {\n if (selectedIndex < 0 || selectedIndex >= this.defaultItemsCount) {\n logger.warn(\n true,\n `You couldn't use value for the \\`index\\` or \\`defaultIndex\\` not from \\`Item's\\` length range.`,\n CarouselRoot.displayName,\n );\n this.setState({ selectedIndex: 0 });\n } else {\n this.transformContainer();\n }\n }\n\n const deprecatedComponents = findAllComponents(this.asProps.Children, [\n 'Carousel.Prev',\n 'Carousel.Next',\n 'Carousel.Indicators',\n ]);\n\n logger.warn(\n deprecatedComponents.length > 0,\n 'Please, try to remove `Prev`, `Next`, `Indicators` and other children components from your Carousel, except only `Item` elements.',\n CarouselRoot.displayName,\n );\n }\n\n componentDidUpdate(prevProps: CarouselProps) {\n const { index } = this.asProps;\n if (prevProps.index !== index && this.isControlled && index !== undefined) {\n this.setState({ selectedIndex: index }, () => this.transformContainer());\n }\n }\n\n handlerKeyDown = (e: React.KeyboardEvent) => {\n const firstSlide = 1;\n const lastSlide = this.state.items.length + 1;\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowRight': {\n e.preventDefault();\n this.transformItem(MAP_TRANSFORM[e.key]);\n break;\n }\n case 'Home': {\n e.preventDefault();\n this.slideToValue(firstSlide);\n break;\n }\n case 'End': {\n e.preventDefault();\n this.slideToValue(lastSlide);\n break;\n }\n }\n\n if (e.metaKey) {\n // like home or end\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n this.slideToValue(firstSlide);\n } else if (e.key === 'ArrowRight') {\n e.preventDefault();\n this.slideToValue(lastSlide);\n }\n }\n };\n\n toggleItem = (item: CarouselItem, removeItem = false) => {\n this.setState((prevState) => {\n const newItems = removeItem\n ? prevState.items.filter((element) => element.node !== item.node)\n : [...prevState.items, item];\n\n return {\n items: newItems,\n };\n });\n\n if (!removeItem) {\n this.defaultItemsCount++;\n }\n };\n\n transformContainer = () => {\n const transform = this.state.selectedIndex * -1 * 100;\n\n if (this.refContainer.current) {\n this.refContainer.current.style.transform = `translateX(${transform}%)`;\n }\n if (this.refModalContainer.current) {\n this.refModalContainer.current.style.transform = `translateX(${transform}%)`;\n }\n };\n\n getDirection = (currentIndex: number, nextIndex: number) => {\n const { bounded } = this.asProps;\n\n if (bounded) {\n return currentIndex < nextIndex ? 'right' : 'left';\n }\n const { items } = this.state;\n const listIndex = items.map((_, ind) => ind);\n const tmpArr = [...listIndex];\n const minTmpArr = tmpArr[0];\n const maxTmpArr = tmpArr[tmpArr.length - 1];\n\n if (tmpArr.length === 2) {\n return currentIndex < nextIndex ? 'right' : 'left';\n }\n if (currentIndex === minTmpArr) {\n tmpArr.unshift(maxTmpArr);\n tmpArr.pop();\n }\n if (currentIndex === maxTmpArr) {\n tmpArr.shift();\n tmpArr.push(minTmpArr);\n }\n\n const tmpCurrentIndex = tmpArr.indexOf(currentIndex);\n const left = tmpArr.indexOf(nextIndex);\n\n return left - tmpCurrentIndex < 0 ? 'left' : 'right';\n };\n\n slideToValue = (nextIndex: number) => {\n const { selectedIndex } = this.state;\n const direction = selectedIndex < nextIndex ? 'right' : 'left';\n let diff = Math.abs(selectedIndex - nextIndex);\n while (diff > 0) {\n this.transformItem(direction);\n diff--;\n }\n };\n\n transformItem = (direction: 'left' | 'right') => {\n const { bounded } = this.asProps;\n const { items, selectedIndex } = this.state;\n const maxIndexIndicator = items.length - 1;\n\n if (direction === 'right') {\n if (bounded && selectedIndex === maxIndexIndicator) {\n this.handlers.index(maxIndexIndicator);\n\n return;\n }\n if (this.isControlled) {\n this.handlers.index(selectedIndex === maxIndexIndicator ? 0 : selectedIndex + 1);\n\n return;\n }\n\n this.setState(\n (prevState) => ({\n selectedIndex: prevState.selectedIndex + 1,\n }),\n () => {\n this.transformContainer();\n this.handlers.index(this.getIndex());\n },\n );\n\n return;\n }\n if (direction === 'left') {\n if (bounded && selectedIndex === 0) {\n this.handlers.index(0);\n\n return;\n }\n if (this.isControlled) {\n this.handlers.index(selectedIndex === 0 ? maxIndexIndicator : selectedIndex - 1);\n\n return;\n }\n\n this.setState(\n (prevState) => ({\n selectedIndex: prevState.selectedIndex - 1,\n }),\n () => {\n this.transformContainer();\n this.handlers.index(this.getIndex());\n },\n );\n\n return;\n }\n };\n\n bindHandlerClick = (direction: 'left' | 'right') => {\n return () => {\n this.transformItem(direction);\n };\n };\n\n bindHandlerClickIndicator = (value: number) => {\n return () => {\n const { selectedIndex, items } = this.state;\n if (!this.isControlled && value !== selectedIndex) {\n const newValueIndex = Math.floor(selectedIndex / items.length) * items.length + value;\n this.slideToValue(newValueIndex);\n }\n this.handlers.index(value);\n };\n };\n\n handlerTouchStart = (e: React.TouchEvent) => {\n this._touchStartCoord = e.changedTouches[0].clientX;\n };\n\n handlerTouchEnd = (e: React.TouchEvent) => {\n const touchEndCoord = e.changedTouches[0].clientX;\n const delta = touchEndCoord - this._touchStartCoord;\n if (delta > 50) {\n this.transformItem('left');\n } else if (delta < -50) {\n this.transformItem('right');\n }\n };\n\n getContainerProps() {\n const { duration } = this.asProps;\n\n return {\n ref: this.refContainer,\n duration,\n };\n }\n\n getItemProps(props: CarouselItemProps, index: number) {\n const { zoom } = this.asProps;\n const isCurrent = this.isSelected(index);\n\n return {\n toggleItem: this.toggleItem,\n uid: this.asProps.uid,\n index,\n current: isCurrent,\n zoomIn: zoom,\n onToggleZoomModal: this.handleToggleZoomModal,\n transform: isCurrent ? this.getTransform() : undefined,\n };\n }\n\n handleToggleZoomModal = () => {\n this.setState(\n (prevState) => {\n return {\n isOpenZoom: !prevState.isOpenZoom,\n };\n },\n () => {\n this.state.isOpenZoom && this.transformContainer();\n },\n );\n };\n\n bindHandlerKeydownControl = (direction: 'left' | 'right') => (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.bindHandlerClick(direction)();\n }\n };\n\n getPrevProps() {\n const { bounded, getI18nText } = this.asProps;\n const { items, selectedIndex } = this.state;\n let disabled = false;\n if (items.length && bounded) {\n disabled = selectedIndex === 0;\n }\n return {\n onClick: this.bindHandlerClick('left'),\n onKeyDown: this.bindHandlerKeydownControl('left'),\n disabled,\n label: getI18nText('prev'),\n tabIndex: -1,\n };\n }\n\n getNextProps() {\n const { bounded, getI18nText } = this.asProps;\n const { items, selectedIndex } = this.state;\n let disabled = false;\n if (items.length && bounded) {\n disabled = selectedIndex === items.length - 1;\n }\n\n return {\n onClick: this.bindHandlerClick('right'),\n onKeyDown: this.bindHandlerKeydownControl('right'),\n disabled,\n label: getI18nText('next'),\n tabIndex: -1,\n };\n }\n\n getIndicatorsProps() {\n const { items } = this.state;\n\n return {\n items: items.map((item, key) => ({\n active: this.isSelected(key),\n onClick: this.bindHandlerClickIndicator(key),\n key,\n })),\n };\n }\n\n getTransform() {\n const { items, selectedIndex } = this.state;\n\n const direction = selectedIndex > 0 ? 1 : -1;\n const count = items.length === 0 ? 0 : Math.floor(selectedIndex / items.length) * direction;\n const transform =\n selectedIndex > 0 && selectedIndex < items.length\n ? 0\n : 100 * direction * count * items.length;\n\n return transform;\n }\n\n getIndex() {\n const { items, selectedIndex } = this.state;\n\n if (items.length === 0) {\n return 0;\n }\n\n if (selectedIndex >= 0) {\n return selectedIndex % items.length;\n }\n\n return (items.length + (selectedIndex % items.length)) % items.length;\n }\n\n isSelected(index: number) {\n const { items, selectedIndex } = this.state;\n\n if (items.length === 0) {\n return true;\n }\n\n return index === this.getIndex();\n }\n\n renderModal(isSmall: boolean, ComponentItems: any[]) {\n const SModalContainer = Root;\n const SModalBox = Box;\n const {\n styles,\n uid,\n duration,\n zoom: hasZoom,\n zoomWidth,\n 'aria-label': ariaLabel,\n 'aria-roledescription': ariaRoledescription,\n } = this.asProps;\n const { isOpenZoom } = this.state;\n\n return sstyled(styles)(\n <Modal\n visible={isOpenZoom}\n onClose={this.handleToggleZoomModal}\n ghost={true}\n closable={!isSmall}\n >\n <Flex direction={isSmall ? 'column' : 'row'}>\n {!isSmall && <Carousel.Prev inverted={true} />}\n <SModalBox>\n <SModalContainer\n render={Box}\n role='list'\n use:duration={`${duration}ms`}\n ref={this.refModalContainer}\n use:w={undefined}\n wMax={zoomWidth}\n >\n {ComponentItems.map((item, i) => {\n return (\n <Carousel.Item\n {...item.props}\n key={item.key}\n uid={uid}\n index={i}\n current={this.isSelected(i)}\n toggleItem={undefined}\n zoom={true}\n zoomOut={true}\n transform={this.isSelected(i) ? this.getTransform() : undefined}\n />\n );\n })}\n </SModalContainer>\n </SModalBox>\n {isSmall ? (\n <Flex justifyContent={'center'} mt={2}>\n <Carousel.Prev inverted={true} />\n <Carousel.Next inverted={true} />\n </Flex>\n ) : (\n <Carousel.Next inverted={true} />\n )}\n </Flex>\n {!isSmall && <Carousel.Indicators inverted={true} />}\n </Modal>,\n );\n }\n\n render() {\n const SCarousel = Root;\n const SContentBox = Box;\n const {\n styles,\n Children,\n zoom: hasZoom,\n 'aria-label': ariaLabel,\n 'aria-roledescription': ariaRoledescription,\n indicators,\n } = this.asProps;\n const ComponentItems = findAllComponents(Children, ['Carousel.Item']);\n const Controls = findAllComponents(Children, [\n 'Carousel.Prev',\n 'Carousel.Next',\n 'Carousel.Indicators',\n ]);\n\n return sstyled(styles)(\n <SCarousel\n render={Box}\n role='group'\n onKeyDown={this.handlerKeyDown}\n onTouchStart={this.handlerTouchStart}\n onTouchEnd={this.handlerTouchEnd}\n ref={this.refCarousel}\n >\n {Controls.length === 0 ? (\n <>\n <Flex>\n <Carousel.Prev />\n <SContentBox>\n <Carousel.Container\n aria-roledescription={ariaRoledescription}\n aria-label={ariaLabel}\n >\n <Children />\n </Carousel.Container>\n </SContentBox>\n <Carousel.Next />\n </Flex>\n {indicators === 'default' && <Carousel.Indicators />}\n {indicators === 'preview' && (\n <Carousel.Indicators>\n {() =>\n ComponentItems.map((item, index) => (\n <Carousel.Indicator\n {...item.props}\n key={item.key}\n w={100}\n h={100}\n aria-roledescription='slide'\n active={this.isSelected(index)}\n onClick={this.bindHandlerClickIndicator(index)}\n />\n ))\n }\n </Carousel.Indicators>\n )}\n </>\n ) : (\n <Children />\n )}\n {hasZoom && (\n <BreakPoints>\n <BreakPoints.Context.Consumer>\n {(mediaIndex) => this.renderModal(isSmallScreen(mediaIndex), ComponentItems)}\n </BreakPoints.Context.Consumer>\n </BreakPoints>\n )}\n </SCarousel>,\n );\n }\n}\n\nconst Container = (props: BoxProps & { duration?: number }) => {\n const SContainer = Root;\n const { styles, duration } = props;\n\n return sstyled(styles)(<SContainer render={Box} role='list' use:duration={`${duration}ms`} />);\n};\n\nclass Item extends Component<CarouselItemProps> {\n refItem = React.createRef<HTMLElement>();\n\n componentDidMount() {\n const { toggleItem, transform } = this.props;\n const refItem = this.refItem.current;\n\n toggleItem && refItem && toggleItem({ node: refItem });\n\n if (transform && refItem) {\n refItem.style.transform = `translateX(${transform}%)`;\n }\n }\n\n componentWillUnmount() {\n const { toggleItem } = this.props;\n const refItem = this.refItem.current;\n\n toggleItem && refItem && toggleItem({ node: refItem }, true);\n }\n\n componentDidUpdate(prevProps: CarouselItemProps) {\n const transform = this.props.transform;\n const refItem = this.refItem.current;\n\n if (prevProps.transform !== transform && refItem) {\n refItem.style.transform = `translateX(${transform}%)`;\n }\n }\n\n render() {\n const { styles, index, uid, current, zoomIn, onToggleZoomModal, transform } = this.props;\n const SItem = Root;\n\n return sstyled(styles)(\n <SItem\n render={Box}\n ref={this.refItem}\n role='listitem'\n id={`igc-${uid}-carousel-item-${index}`}\n aria-current={current}\n onClick={zoomIn ? onToggleZoomModal : undefined}\n zoomIn={zoomIn}\n />,\n );\n }\n}\n\nconst Prev = (props: CarouselButtonProps) => {\n const { styles, children, Children, label, top = 0, inverted, tabIndex } = props;\n const SPrev = Root;\n const SPrevButton = Button;\n\n return sstyled(styles)(\n <SPrev render={Box} top={top}>\n {children ? (\n <Children />\n ) : (\n <SPrevButton\n addonLeft={ChevronLeft}\n aria-label={label}\n theme={inverted ? 'invert' : 'muted'}\n use={'tertiary'}\n size={'l'}\n tabIndex={tabIndex}\n />\n )}\n </SPrev>,\n );\n};\n\nconst Next = (props: CarouselButtonProps) => {\n const { styles, children, Children, label, top = 0, inverted, tabIndex } = props;\n const SNext = Root;\n const SNextButton = Button;\n\n return sstyled(styles)(\n <SNext render={Box} top={top}>\n {children ? (\n <Children />\n ) : (\n <SNextButton\n addonLeft={ChevronRight}\n aria-label={label}\n theme={inverted ? 'invert' : 'muted'}\n use={'tertiary'}\n size={'l'}\n tabIndex={tabIndex}\n />\n )}\n </SNext>,\n );\n};\n\nconst Indicators = ({ items, styles, Children, inverted }: CarouselIndicatorsProps) => {\n const SIndicators = Root;\n if (Children.origin) {\n return sstyled(styles)(\n <SIndicators render={Box} aria-hidden='true'>\n <Children />\n </SIndicators>,\n );\n }\n return sstyled(styles)(\n <SIndicators render={Box} aria-hidden='true'>\n {items?.map((item, index) => (\n <Carousel.Indicator key={index} {...item} inverted={inverted} />\n ))}\n </SIndicators>,\n );\n};\n\nconst Indicator = ({ styles, Children }: CarouselIndicatorProps) => {\n const SIndicator = Root;\n return sstyled(styles)(\n <SIndicator render={Box}>\n <Children />\n </SIndicator>,\n );\n};\n\nconst Carousel: typeof CarouselType = createComponent(CarouselRoot, {\n Container,\n Indicators,\n Indicator,\n Item,\n Prev,\n Next,\n});\n\nexport default Carousel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Carousel.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_button","_modal","_flexBox","_l","_l2","_uniqueID","_i18nEnhance","_intergalacticDynamicLocales","_logger","_findComponent","_breakpoints","_keyboardFocusEnhance","style","_index2","sstyled","insert","MAP_TRANSFORM","ArrowLeft","ArrowRight","enhance","uid","uniqueIDEnhancement","i18nEnahnce","i18nEnhance","localizedMessages","media","BreakPoints","createBreakpoints","isSmallScreen","index","CarouselRoot","_Component","_inherits2","_super","_createSuper2","props","_ref18","_props$index","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","React","createRef","e","firstSlide","lastSlide","state","items","length","key","preventDefault","transformItem","slideToValue","metaKey","item","removeItem","arguments","undefined","setState","prevState","newItems","filter","element","node","concat","_toConsumableArray2","defaultItemsCount","transform","selectedIndex","refContainer","current","refModalContainer","currentIndex","nextIndex","bounded","asProps","listIndex","map","_","ind","tmpArr","minTmpArr","maxTmpArr","unshift","pop","shift","push","tmpCurrentIndex","indexOf","left","direction","diff","Math","abs","_this$state","maxIndexIndicator","handlers","isControlled","transformContainer","getIndex","value","_this$state2","newValueIndex","floor","_touchStartCoord","changedTouches","clientX","touchEndCoord","delta","isOpenZoom","bindHandlerClick","defaultIndex","_createClass2","uncontrolledProps","_this2","_index","_this2$refCarousel$cu","refCarousel","blur","setTimeout","_this2$refCarousel$cu2","focus","componentDidMount","logger","warn","displayName","deprecatedComponents","findAllComponents","Children","componentDidUpdate","prevProps","_this3","getContainerProps","duration","ref","getItemProps","zoom","isCurrent","isSelected","toggleItem","zoomIn","onToggleZoomModal","handleToggleZoomModal","getTransform","getPrevProps","_this$asProps","getI18nText","_this$state3","disabled","onClick","onKeyDown","bindHandlerKeydownControl","label","getNextProps","_this$asProps2","_this$state4","getIndicatorsProps","_this4","active","bindHandlerClickIndicator","role","getIndicatorProps","slideNumber","_this$state5","count","_this$state6","renderModal","isSmall","ComponentItems","_ref","_ref9","_this5","SModalContainer","Box","SModalBox","_this$asProps3","styles","zoomWidth","createElement","cn","Flex","Carousel","Prev","inverted","_objectSpread2","assignProps","i","Item","_extends2","zoomOut","Next","Indicators","render","_ref2","_ref10","_this6","SCarousel","SContentBox","_this$asProps4","hasZoom","ariaLabel","ariaRoledescription","indicators","Controls","handlerKeyDown","handlerTouchStart","handlerTouchEnd","Fragment","Container","Indicator","w","h","Context","Consumer","mediaIndex","Component","step","i18n","locale","Object","values","_ref3","arguments[0]","_ref11","SContainer","_Component2","_super2","_this7","_len","args","Array","_key","apply","_this$props","refItem","componentWillUnmount","clearTimeout","keepFocusTimeout","_document$activeEleme","document","activeElement","dataset","carousel","_ref4","_ref12","_this$props2","SItem","keyboardFocusEnhance","_ref5","_ref13","children","_props$top","top","SPrev","SPrevButton","Button","ChevronLeft","_ref6","_ref14","_props$top2","SNext","SNextButton","ChevronRight","_ref19","_ref7","_ref16","SIndicators","origin","_ref15","_ref20","_ref8","_ref17","SIndicator","createComponent","_default","exports"],"sources":["../../src/Carousel.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Button from '@semcore/button';\nimport Modal from '@semcore/modal';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ChevronRight from '@semcore/icon/ChevronRight/l';\nimport ChevronLeft from '@semcore/icon/ChevronLeft/l';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport logger from '@semcore/utils/lib/logger';\nimport style from './style/carousel.shadow.css';\nimport CarouselType, {\n CarouselProps,\n CarouselState,\n CarouselContext,\n CarouselItem,\n CarouselItemProps,\n CarouselButtonProps,\n CarouselIndicatorsProps,\n CarouselIndicatorProps,\n} from './Carousel.types';\nimport { BoxProps } from '@semcore/flex-box';\nimport { findAllComponents } from '@semcore/utils/lib/findComponent';\nimport { createBreakpoints } from '@semcore/breakpoints';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nconst MAP_TRANSFORM: Record<string, 'left' | 'right'> = {\n ArrowLeft: 'left',\n ArrowRight: 'right',\n};\n\nconst enhance = {\n uid: uniqueIDEnhancement(),\n i18nEnahnce: i18nEnhance(localizedMessages),\n};\nconst media = ['(min-width: 481px)', '(max-width: 480px)'];\nconst BreakPoints = createBreakpoints(media);\nconst isSmallScreen = (index: number) => index === 1;\n\nclass CarouselRoot extends Component<\n CarouselProps,\n CarouselContext,\n CarouselState,\n typeof enhance & {\n getI18nText: (\n messageId: string,\n variables?: { [key: string]: string | number | undefined },\n ) => string;\n }\n> {\n static displayName = 'Carousel';\n static defaultProps = {\n defaultIndex: 0,\n duration: 350,\n step: 100,\n bounded: false,\n i18n: localizedMessages,\n locale: 'en',\n indicators: 'default',\n };\n\n static style = style;\n static enhance = Object.values(enhance);\n\n defaultItemsCount = 0;\n refCarousel = React.createRef<HTMLElement>();\n refContainer = React.createRef<HTMLElement>();\n refModalContainer = React.createRef<HTMLElement>();\n _touchStartCoord = -1;\n\n constructor(props: CarouselProps) {\n super(props);\n this.isControlled = props.index !== undefined;\n this.state = {\n items: [],\n isOpenZoom: false,\n selectedIndex: props.index ?? props.defaultIndex ?? 0,\n };\n }\n\n uncontrolledProps() {\n return {\n index: [\n null,\n (_index: number) => {\n this.refCarousel.current?.blur();\n setTimeout(() => {\n this.refCarousel.current?.focus();\n }, 0);\n },\n ],\n };\n }\n\n componentDidMount() {\n const { selectedIndex } = this.state;\n\n if (selectedIndex !== 0) {\n if (selectedIndex < 0 || selectedIndex >= this.defaultItemsCount) {\n logger.warn(\n true,\n `You couldn't use value for the \\`index\\` or \\`defaultIndex\\` not from \\`Item's\\` length range.`,\n CarouselRoot.displayName,\n );\n this.setState({ selectedIndex: 0 });\n } else {\n this.transformContainer();\n }\n }\n\n const deprecatedComponents = findAllComponents(this.asProps.Children, [\n 'Carousel.Prev',\n 'Carousel.Next',\n 'Carousel.Indicators',\n ]);\n\n logger.warn(\n deprecatedComponents.length > 0,\n 'Please, try to remove `Prev`, `Next`, `Indicators` and other children components from your Carousel, except only `Item` elements.',\n CarouselRoot.displayName,\n );\n }\n\n componentDidUpdate(prevProps: CarouselProps) {\n const { index } = this.asProps;\n if (prevProps.index !== index && this.isControlled && index !== undefined) {\n this.setState({ selectedIndex: index }, () => this.transformContainer());\n }\n }\n\n handlerKeyDown = (e: React.KeyboardEvent) => {\n const firstSlide = 1;\n const lastSlide = this.state.items.length + 1;\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowRight': {\n e.preventDefault();\n this.transformItem(MAP_TRANSFORM[e.key]);\n break;\n }\n case 'Home': {\n e.preventDefault();\n this.slideToValue(firstSlide);\n break;\n }\n case 'End': {\n e.preventDefault();\n this.slideToValue(lastSlide);\n break;\n }\n }\n\n if (e.metaKey) {\n // like home or end\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n this.slideToValue(firstSlide);\n } else if (e.key === 'ArrowRight') {\n e.preventDefault();\n this.slideToValue(lastSlide);\n }\n }\n };\n\n toggleItem = (item: CarouselItem, removeItem = false) => {\n this.setState((prevState) => {\n const newItems = removeItem\n ? prevState.items.filter((element) => element.node !== item.node)\n : [...prevState.items, item];\n\n return {\n items: newItems,\n };\n });\n\n if (!removeItem) {\n this.defaultItemsCount++;\n }\n };\n\n transformContainer = () => {\n const transform = this.state.selectedIndex * -1 * 100;\n\n if (this.refContainer.current) {\n this.refContainer.current.style.transform = `translateX(${transform}%)`;\n }\n if (this.refModalContainer.current) {\n this.refModalContainer.current.style.transform = `translateX(${transform}%)`;\n }\n };\n\n getDirection = (currentIndex: number, nextIndex: number) => {\n const { bounded } = this.asProps;\n\n if (bounded) {\n return currentIndex < nextIndex ? 'right' : 'left';\n }\n const { items } = this.state;\n const listIndex = items.map((_, ind) => ind);\n const tmpArr = [...listIndex];\n const minTmpArr = tmpArr[0];\n const maxTmpArr = tmpArr[tmpArr.length - 1];\n\n if (tmpArr.length === 2) {\n return currentIndex < nextIndex ? 'right' : 'left';\n }\n if (currentIndex === minTmpArr) {\n tmpArr.unshift(maxTmpArr);\n tmpArr.pop();\n }\n if (currentIndex === maxTmpArr) {\n tmpArr.shift();\n tmpArr.push(minTmpArr);\n }\n\n const tmpCurrentIndex = tmpArr.indexOf(currentIndex);\n const left = tmpArr.indexOf(nextIndex);\n\n return left - tmpCurrentIndex < 0 ? 'left' : 'right';\n };\n\n slideToValue = (nextIndex: number) => {\n const { selectedIndex } = this.state;\n const direction = selectedIndex < nextIndex ? 'right' : 'left';\n let diff = Math.abs(selectedIndex - nextIndex);\n while (diff > 0) {\n this.transformItem(direction);\n diff--;\n }\n };\n\n transformItem = (direction: 'left' | 'right') => {\n const { bounded } = this.asProps;\n const { items, selectedIndex } = this.state;\n const maxIndexIndicator = items.length - 1;\n\n if (direction === 'right') {\n if (bounded && selectedIndex === maxIndexIndicator) {\n this.handlers.index(maxIndexIndicator);\n\n return;\n }\n if (this.isControlled) {\n this.handlers.index(selectedIndex === maxIndexIndicator ? 0 : selectedIndex + 1);\n\n return;\n }\n\n this.setState(\n (prevState) => ({\n selectedIndex: prevState.selectedIndex + 1,\n }),\n () => {\n this.transformContainer();\n this.handlers.index(this.getIndex());\n },\n );\n\n return;\n }\n if (direction === 'left') {\n if (bounded && selectedIndex === 0) {\n this.handlers.index(0);\n\n return;\n }\n if (this.isControlled) {\n this.handlers.index(selectedIndex === 0 ? maxIndexIndicator : selectedIndex - 1);\n\n return;\n }\n\n this.setState(\n (prevState) => ({\n selectedIndex: prevState.selectedIndex - 1,\n }),\n () => {\n this.transformContainer();\n this.handlers.index(this.getIndex());\n },\n );\n\n return;\n }\n };\n\n bindHandlerClick = (direction: 'left' | 'right') => {\n return () => {\n this.transformItem(direction);\n };\n };\n\n bindHandlerClickIndicator = (value: number) => {\n return () => {\n const { selectedIndex, items } = this.state;\n if (!this.isControlled && value !== selectedIndex) {\n const newValueIndex = Math.floor(selectedIndex / items.length) * items.length + value;\n this.slideToValue(newValueIndex);\n }\n this.handlers.index(value);\n };\n };\n\n handlerTouchStart = (e: React.TouchEvent) => {\n this._touchStartCoord = e.changedTouches[0].clientX;\n };\n\n handlerTouchEnd = (e: React.TouchEvent) => {\n const touchEndCoord = e.changedTouches[0].clientX;\n const delta = touchEndCoord - this._touchStartCoord;\n if (delta > 50) {\n this.transformItem('left');\n } else if (delta < -50) {\n this.transformItem('right');\n }\n };\n\n getContainerProps() {\n const { duration } = this.asProps;\n\n return {\n ref: this.refContainer,\n duration,\n };\n }\n\n getItemProps(props: CarouselItemProps, index: number) {\n const { zoom } = this.asProps;\n const isCurrent = this.isSelected(index);\n\n return {\n toggleItem: this.toggleItem,\n uid: this.asProps.uid,\n index,\n current: isCurrent,\n zoomIn: zoom,\n onToggleZoomModal: this.handleToggleZoomModal,\n transform: isCurrent ? this.getTransform() : undefined,\n };\n }\n\n handleToggleZoomModal = () => {\n this.setState(\n (prevState) => {\n return {\n isOpenZoom: !prevState.isOpenZoom,\n };\n },\n () => {\n this.state.isOpenZoom && this.transformContainer();\n },\n );\n };\n\n bindHandlerKeydownControl = (direction: 'left' | 'right') => (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.bindHandlerClick(direction)();\n }\n };\n\n getPrevProps() {\n const { bounded, getI18nText, uid } = this.asProps;\n const { items, selectedIndex } = this.state;\n let disabled = false;\n if (items.length && bounded) {\n disabled = selectedIndex === 0;\n }\n return {\n onClick: this.bindHandlerClick('left'),\n onKeyDown: this.bindHandlerKeydownControl('left'),\n disabled,\n label: getI18nText('prev'),\n 'aria-controls': `igc-${uid}-carousel`,\n };\n }\n\n getNextProps() {\n const { bounded, getI18nText, uid } = this.asProps;\n const { items, selectedIndex } = this.state;\n let disabled = false;\n if (items.length && bounded) {\n disabled = selectedIndex === items.length - 1;\n }\n\n return {\n onClick: this.bindHandlerClick('right'),\n onKeyDown: this.bindHandlerKeydownControl('right'),\n disabled,\n label: getI18nText('next'),\n 'aria-controls': `igc-${uid}-carousel`,\n };\n }\n\n getIndicatorsProps() {\n const { items } = this.state;\n const { getI18nText } = this.asProps;\n\n return {\n items: items.map((item, key) => ({\n active: this.isSelected(key),\n onClick: this.bindHandlerClickIndicator(key),\n key,\n })),\n role: 'tablist',\n 'aria-label': getI18nText('slides'),\n };\n }\n\n getIndicatorProps(_: any, index: number) {\n const isCurrent = this.isSelected(index);\n const { getI18nText } = this.asProps;\n\n return {\n role: 'tab',\n 'aria-selected': isCurrent,\n 'aria-controls': `igc-${this.asProps.uid}-carousel-item-${index}`,\n 'aria-label': getI18nText('slide', { slideNumber: index + 1 }),\n };\n }\n\n getTransform() {\n const { items, selectedIndex } = this.state;\n\n const direction = selectedIndex > 0 ? 1 : -1;\n const count = items.length === 0 ? 0 : Math.floor(selectedIndex / items.length) * direction;\n const transform =\n selectedIndex > 0 && selectedIndex < items.length\n ? 0\n : 100 * direction * count * items.length;\n\n return transform;\n }\n\n getIndex() {\n const { items, selectedIndex } = this.state;\n\n if (items.length === 0) {\n return 0;\n }\n\n if (selectedIndex >= 0) {\n return selectedIndex % items.length;\n }\n\n return (items.length + (selectedIndex % items.length)) % items.length;\n }\n\n isSelected(index: number) {\n const { items } = this.state;\n\n if (items.length === 0) {\n return true;\n }\n\n return index === this.getIndex();\n }\n\n renderModal(isSmall: boolean, ComponentItems: any[]) {\n const SModalContainer = Root;\n const SModalBox = Box;\n const { styles, uid, duration, zoomWidth } = this.asProps;\n const { isOpenZoom } = this.state;\n\n return sstyled(styles)(\n <Modal\n visible={isOpenZoom}\n onClose={this.handleToggleZoomModal}\n ghost={true}\n closable={!isSmall}\n >\n <Flex direction={isSmall ? 'column' : 'row'}>\n {!isSmall && <Carousel.Prev inverted={true} />}\n <SModalBox>\n <SModalContainer\n render={Box}\n aria-live='polite'\n use:duration={`${duration}ms`}\n ref={this.refModalContainer}\n use:w={undefined}\n wMax={zoomWidth}\n >\n {ComponentItems.map((item, i) => {\n return (\n <Carousel.Item\n {...item.props}\n key={item.key}\n uid={uid}\n index={i}\n current={this.isSelected(i)}\n toggleItem={undefined}\n zoom={true}\n zoomOut={true}\n transform={this.isSelected(i) ? this.getTransform() : undefined}\n />\n );\n })}\n </SModalContainer>\n </SModalBox>\n {isSmall ? (\n <Flex justifyContent={'center'} mt={2}>\n <Carousel.Prev inverted={true} />\n <Carousel.Next inverted={true} />\n </Flex>\n ) : (\n <Carousel.Next inverted={true} />\n )}\n </Flex>\n {!isSmall && <Carousel.Indicators inverted={true} />}\n </Modal>,\n );\n }\n\n render() {\n const SCarousel = Root;\n const SContentBox = Box;\n const {\n styles,\n Children,\n uid,\n zoom: hasZoom,\n 'aria-label': ariaLabel,\n 'aria-roledescription': ariaRoledescription,\n indicators,\n } = this.asProps;\n const ComponentItems = findAllComponents(Children, ['Carousel.Item']);\n const Controls = findAllComponents(Children, [\n 'Carousel.Prev',\n 'Carousel.Next',\n 'Carousel.Indicators',\n ]);\n\n return sstyled(styles)(\n <SCarousel\n render={Box}\n role='region'\n roledescription='carousel'\n onKeyDown={this.handlerKeyDown}\n onTouchStart={this.handlerTouchStart}\n onTouchEnd={this.handlerTouchEnd}\n ref={this.refCarousel}\n id={`igc-${uid}-carousel`}\n aria-roledescription={ariaRoledescription}\n >\n {Controls.length === 0 ? (\n <>\n <Flex>\n <Carousel.Prev />\n <SContentBox>\n <Carousel.Container aria-label={ariaLabel}>\n <Children />\n </Carousel.Container>\n </SContentBox>\n <Carousel.Next />\n </Flex>\n {indicators === 'default' && <Carousel.Indicators />}\n {indicators === 'preview' && (\n <Carousel.Indicators>\n {() =>\n ComponentItems.map((item, index) => (\n <Carousel.Indicator\n {...item.props}\n key={item.key}\n w={100}\n h={100}\n aria-roledescription='slide'\n active={this.isSelected(index)}\n onClick={this.bindHandlerClickIndicator(index)}\n />\n ))\n }\n </Carousel.Indicators>\n )}\n </>\n ) : (\n <Children />\n )}\n {hasZoom && (\n <BreakPoints>\n <BreakPoints.Context.Consumer>\n {(mediaIndex) => this.renderModal(isSmallScreen(mediaIndex), ComponentItems)}\n </BreakPoints.Context.Consumer>\n </BreakPoints>\n )}\n </SCarousel>,\n );\n }\n}\n\nconst Container = (props: BoxProps & { duration?: number }) => {\n const SContainer = Root;\n const { styles, duration } = props;\n\n return sstyled(styles)(\n <SContainer render={Box} use:duration={`${duration}ms`} aria-live='polite' />,\n );\n};\n\nclass Item extends Component<CarouselItemProps> {\n refItem = React.createRef<HTMLElement>();\n keepFocusTimeout: NodeJS.Timeout | undefined;\n static enhance = [keyboardFocusEnhance(false)];\n\n componentDidMount() {\n const { toggleItem, transform } = this.props;\n const refItem = this.refItem.current;\n\n toggleItem && refItem && toggleItem({ node: refItem });\n\n if (transform && refItem) {\n refItem.style.transform = `translateX(${transform}%)`;\n }\n }\n\n componentWillUnmount() {\n const { toggleItem } = this.props;\n const refItem = this.refItem.current;\n\n toggleItem && refItem && toggleItem({ node: refItem }, true);\n clearTimeout(this.keepFocusTimeout);\n }\n\n componentDidUpdate(prevProps: CarouselItemProps) {\n clearTimeout(this.keepFocusTimeout);\n\n const transform = this.props.transform;\n const refItem = this.refItem.current;\n\n if (prevProps.transform !== transform && refItem) {\n refItem.style.transform = `translateX(${transform}%)`;\n }\n if (this.props.current) {\n this.keepFocusTimeout = setTimeout(() => {\n if (\n document.activeElement !== refItem &&\n (document.activeElement as HTMLElement)?.dataset.carousel === refItem?.dataset.carousel\n ) {\n refItem?.focus();\n }\n }, 100);\n }\n }\n\n render() {\n const { styles, index, uid, current, zoomIn, onToggleZoomModal } = this.props;\n const SItem = Root;\n\n return sstyled(styles)(\n <SItem\n render={Box}\n ref={this.refItem}\n role='tabpanel'\n data-carousel={`igc-${uid}-carousel`}\n id={`igc-${uid}-carousel-item-${index}`}\n aria-current={current}\n use:tabIndex={current ? 0 : -1}\n onClick={zoomIn ? onToggleZoomModal : undefined}\n zoomIn={zoomIn}\n />,\n );\n }\n}\n\nconst Prev = (props: CarouselButtonProps) => {\n const { styles, children, Children, label, top = 0, inverted } = props;\n const SPrev = Root;\n const SPrevButton = Button;\n\n return sstyled(styles)(\n <SPrev render={Box} top={top}>\n {children ? (\n <Children />\n ) : (\n <SPrevButton\n addonLeft={ChevronLeft}\n aria-label={label}\n theme={inverted ? 'invert' : 'muted'}\n use={'tertiary'}\n size={'l'}\n />\n )}\n </SPrev>,\n );\n};\n\nconst Next = (props: CarouselButtonProps) => {\n const { styles, children, Children, label, top = 0, inverted } = props;\n const SNext = Root;\n const SNextButton = Button;\n\n return sstyled(styles)(\n <SNext render={Box} top={top}>\n {children ? (\n <Children />\n ) : (\n <SNextButton\n addonLeft={ChevronRight}\n aria-label={label}\n theme={inverted ? 'invert' : 'muted'}\n use={'tertiary'}\n size={'l'}\n />\n )}\n </SNext>,\n );\n};\n\nconst Indicators = ({ items, styles, Children, inverted }: CarouselIndicatorsProps) => {\n const SIndicators = Root;\n if (Children.origin) {\n return sstyled(styles)(\n <SIndicators render={Box}>\n <Children />\n </SIndicators>,\n );\n }\n return sstyled(styles)(\n <SIndicators render={Box}>\n {items?.map((item, index) => (\n <Carousel.Indicator key={index} {...item} inverted={inverted} />\n ))}\n </SIndicators>,\n );\n};\nIndicators.enhance = [keyboardFocusEnhance()];\n\nconst Indicator = ({ styles, Children }: CarouselIndicatorProps) => {\n const SIndicator = Root;\n return sstyled(styles)(\n <SIndicator render={Box}>\n <Children />\n </SIndicator>,\n );\n};\n\nconst Carousel: typeof CarouselType = createComponent(CarouselRoot, {\n Container,\n Indicators,\n Indicator,\n Item,\n Prev,\n Next,\n});\n\nexport default Carousel;\n"],"mappings":"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"}