@megafon/ui-shared 9.0.0-alpha.9 → 9.0.0

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 (177) hide show
  1. package/dist/es/components/BenefitCards/BenefitCard/BenefitCard.css +1 -0
  2. package/dist/es/components/BenefitCards/BenefitCard/BenefitCard.d.ts +13 -0
  3. package/dist/es/components/BenefitCards/BenefitCard/BenefitCard.js +59 -0
  4. package/dist/es/components/BenefitCards/BenefitCards.css +1 -0
  5. package/dist/es/components/BenefitCards/BenefitCards.d.ts +27 -0
  6. package/dist/es/components/BenefitCards/BenefitCards.js +35 -0
  7. package/dist/es/components/BenefitCards/helpers.d.ts +1 -0
  8. package/dist/es/components/BenefitCards/helpers.js +19 -0
  9. package/dist/es/components/BenefitCards/types.d.ts +24 -0
  10. package/dist/es/components/BenefitCards/types.js +1 -0
  11. package/dist/es/components/BlogBox/components/BlogBoxTile.css +1 -1
  12. package/dist/es/components/Breadcrumbs/Breadcrumbs.d.ts +2 -0
  13. package/dist/es/components/Breadcrumbs/Breadcrumbs.js +3 -0
  14. package/dist/es/components/Breadcrumbs/components/BreadcrumbsItem.d.ts +1 -0
  15. package/dist/es/components/Breadcrumbs/components/BreadcrumbsItem.js +18 -13
  16. package/dist/es/components/Card/Card.css +1 -1
  17. package/dist/es/components/Card/Card.d.ts +2 -1
  18. package/dist/es/components/Card/Card.js +23 -16
  19. package/dist/es/components/Card/types.d.ts +3 -5
  20. package/dist/es/components/CardsOnBackground/CardsOnBackground.css +1 -0
  21. package/dist/es/components/CardsOnBackground/CardsOnBackground.d.ts +37 -0
  22. package/dist/es/components/CardsOnBackground/CardsOnBackground.js +98 -0
  23. package/dist/es/components/CardsOnBackground/components/CardOnBackground.css +1 -0
  24. package/dist/es/components/CardsOnBackground/components/CardOnBackground.d.ts +22 -0
  25. package/dist/es/components/CardsOnBackground/components/CardOnBackground.js +94 -0
  26. package/dist/es/components/CardsOnBackground/types.d.ts +47 -0
  27. package/dist/es/components/CardsOnBackground/types.js +10 -0
  28. package/dist/es/components/CardsOnBackground/useUniformHeights.d.ts +9 -0
  29. package/dist/es/components/CardsOnBackground/useUniformHeights.js +88 -0
  30. package/dist/es/components/Container/Container.css +1 -1
  31. package/dist/es/components/Container/Container.d.ts +4 -0
  32. package/dist/es/components/Container/Container.js +4 -1
  33. package/dist/es/components/DarkGradientCards/components/DarkGradientCard.css +1 -1
  34. package/dist/es/components/DownloadLinks/DownloadLink.css +1 -1
  35. package/dist/es/components/DownloadLinks/DownloadLink.js +3 -1
  36. package/dist/es/components/ImageBanner/ImageBanner.d.ts +3 -0
  37. package/dist/es/components/ImageBanner/ImageBanner.js +3 -1
  38. package/dist/es/components/InfoCards/components/InfoCard/InfoCard.css +1 -1
  39. package/dist/es/components/InfoCards/components/InfoCard/InfoCard.js +4 -2
  40. package/dist/es/components/Instructions/Instructions.css +1 -1
  41. package/dist/es/components/Instructions/Instructions.d.ts +23 -7
  42. package/dist/es/components/Instructions/Instructions.js +46 -30
  43. package/dist/es/components/Instructions/img/android.png +0 -0
  44. package/dist/es/components/Instructions/img/laptop.png +0 -0
  45. package/dist/es/components/Instructions/img/logo-base.png +0 -0
  46. package/dist/es/components/Instructions/img/logo-cropped-base-with-opacity.png +0 -0
  47. package/dist/es/components/Instructions/img/logo-cropped-spb-sky-3.png +0 -0
  48. package/dist/es/components/Instructions/img/logo-spb-sky-0.png +0 -0
  49. package/dist/es/components/Partners/Partners.css +1 -1
  50. package/dist/es/components/Partners/Partners.d.ts +3 -8
  51. package/dist/es/components/Partners/Partners.js +20 -31
  52. package/dist/es/components/Partners/components/PartnersItem/PartnersItem.css +1 -0
  53. package/dist/es/components/Partners/components/PartnersItem/PartnersItem.d.ts +12 -0
  54. package/dist/es/components/Partners/components/PartnersItem/PartnersItem.js +33 -0
  55. package/dist/es/components/Partners/types.d.ts +7 -0
  56. package/dist/es/components/Partners/types.js +1 -0
  57. package/dist/es/components/PictureBox/PictureBox.d.ts +1 -0
  58. package/dist/es/components/PictureBox/PictureBox.js +2 -0
  59. package/dist/es/components/PromoBanner/components/PromoBannerSlide/PromoBannerSlide.d.ts +2 -0
  60. package/dist/es/components/PromoBanner/components/PromoBannerSlide/PromoBannerSlide.js +2 -0
  61. package/dist/es/components/PromoCards/components/PromoCard/PromoCard.css +1 -1
  62. package/dist/es/components/ServiceCards/components/ServiceCard/ServiceCard.css +1 -1
  63. package/dist/es/components/ServiceCards/components/ServiceCard/ServiceCard.js +1 -1
  64. package/dist/es/components/StepperBox/StepperBox.d.ts +11 -0
  65. package/dist/es/components/StepperBox/StepperBox.js +36 -0
  66. package/dist/es/components/StoreButton/StoreButton.css +1 -1
  67. package/dist/es/components/TitleDescriptionBox/TitleDescriptionBox.css +1 -1
  68. package/dist/es/components/TitleDescriptionBox/TitleDescriptionBox.d.ts +27 -1
  69. package/dist/es/components/TitleDescriptionBox/TitleDescriptionBox.js +31 -24
  70. package/dist/es/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  71. package/dist/es/hooks/useIsomorphicLayoutEffect.js +6 -0
  72. package/dist/es/index.d.ts +7 -2
  73. package/dist/es/index.js +7 -2
  74. package/dist/lib/components/BenefitCards/BenefitCard/BenefitCard.css +1 -0
  75. package/dist/lib/components/BenefitCards/BenefitCard/BenefitCard.d.ts +13 -0
  76. package/dist/lib/components/BenefitCards/BenefitCard/BenefitCard.js +68 -0
  77. package/dist/lib/components/BenefitCards/BenefitCards.css +1 -0
  78. package/dist/lib/components/BenefitCards/BenefitCards.d.ts +27 -0
  79. package/dist/lib/components/BenefitCards/BenefitCards.js +44 -0
  80. package/dist/lib/components/BenefitCards/helpers.d.ts +1 -0
  81. package/dist/lib/components/BenefitCards/helpers.js +26 -0
  82. package/dist/lib/components/BenefitCards/types.d.ts +24 -0
  83. package/dist/lib/components/BenefitCards/types.js +5 -0
  84. package/dist/lib/components/BlogBox/components/BlogBoxTile.css +1 -1
  85. package/dist/lib/components/Breadcrumbs/Breadcrumbs.d.ts +2 -0
  86. package/dist/lib/components/Breadcrumbs/Breadcrumbs.js +3 -0
  87. package/dist/lib/components/Breadcrumbs/components/BreadcrumbsItem.d.ts +1 -0
  88. package/dist/lib/components/Breadcrumbs/components/BreadcrumbsItem.js +18 -13
  89. package/dist/lib/components/Card/Card.css +1 -1
  90. package/dist/lib/components/Card/Card.d.ts +2 -1
  91. package/dist/lib/components/Card/Card.js +22 -15
  92. package/dist/lib/components/Card/types.d.ts +3 -5
  93. package/dist/lib/components/CardsOnBackground/CardsOnBackground.css +1 -0
  94. package/dist/lib/components/CardsOnBackground/CardsOnBackground.d.ts +37 -0
  95. package/dist/lib/components/CardsOnBackground/CardsOnBackground.js +107 -0
  96. package/dist/lib/components/CardsOnBackground/components/CardOnBackground.css +1 -0
  97. package/dist/lib/components/CardsOnBackground/components/CardOnBackground.d.ts +22 -0
  98. package/dist/lib/components/CardsOnBackground/components/CardOnBackground.js +100 -0
  99. package/dist/lib/components/CardsOnBackground/types.d.ts +47 -0
  100. package/dist/lib/components/CardsOnBackground/types.js +16 -0
  101. package/dist/lib/components/CardsOnBackground/useUniformHeights.d.ts +9 -0
  102. package/dist/lib/components/CardsOnBackground/useUniformHeights.js +95 -0
  103. package/dist/lib/components/Container/Container.css +1 -1
  104. package/dist/lib/components/Container/Container.d.ts +4 -0
  105. package/dist/lib/components/Container/Container.js +4 -1
  106. package/dist/lib/components/DarkGradientCards/components/DarkGradientCard.css +1 -1
  107. package/dist/lib/components/DownloadLinks/DownloadLink.css +1 -1
  108. package/dist/lib/components/DownloadLinks/DownloadLink.js +3 -1
  109. package/dist/lib/components/ImageBanner/ImageBanner.d.ts +3 -0
  110. package/dist/lib/components/ImageBanner/ImageBanner.js +3 -1
  111. package/dist/lib/components/InfoCards/components/InfoCard/InfoCard.css +1 -1
  112. package/dist/lib/components/InfoCards/components/InfoCard/InfoCard.js +4 -2
  113. package/dist/lib/components/Instructions/Instructions.css +1 -1
  114. package/dist/lib/components/Instructions/Instructions.d.ts +23 -7
  115. package/dist/lib/components/Instructions/Instructions.js +47 -30
  116. package/dist/lib/components/Instructions/img/android.png +0 -0
  117. package/dist/lib/components/Instructions/img/laptop.png +0 -0
  118. package/dist/lib/components/Instructions/img/logo-base.png +0 -0
  119. package/dist/lib/components/Instructions/img/logo-cropped-base-with-opacity.png +0 -0
  120. package/dist/lib/components/Instructions/img/logo-cropped-spb-sky-3.png +0 -0
  121. package/dist/lib/components/Instructions/img/logo-spb-sky-0.png +0 -0
  122. package/dist/lib/components/Partners/Partners.css +1 -1
  123. package/dist/lib/components/Partners/Partners.d.ts +3 -8
  124. package/dist/lib/components/Partners/Partners.js +19 -30
  125. package/dist/lib/components/Partners/components/PartnersItem/PartnersItem.css +1 -0
  126. package/dist/lib/components/Partners/components/PartnersItem/PartnersItem.d.ts +12 -0
  127. package/dist/lib/components/Partners/components/PartnersItem/PartnersItem.js +42 -0
  128. package/dist/lib/components/Partners/types.d.ts +7 -0
  129. package/dist/lib/components/Partners/types.js +5 -0
  130. package/dist/lib/components/PictureBox/PictureBox.d.ts +1 -0
  131. package/dist/lib/components/PictureBox/PictureBox.js +2 -0
  132. package/dist/lib/components/PromoBanner/components/PromoBannerSlide/PromoBannerSlide.d.ts +2 -0
  133. package/dist/lib/components/PromoBanner/components/PromoBannerSlide/PromoBannerSlide.js +2 -0
  134. package/dist/lib/components/PromoCards/components/PromoCard/PromoCard.css +1 -1
  135. package/dist/lib/components/ServiceCards/components/ServiceCard/ServiceCard.css +1 -1
  136. package/dist/lib/components/ServiceCards/components/ServiceCard/ServiceCard.js +1 -1
  137. package/dist/lib/components/StepperBox/StepperBox.d.ts +11 -0
  138. package/dist/lib/components/StepperBox/StepperBox.js +46 -0
  139. package/dist/lib/components/StoreButton/StoreButton.css +1 -1
  140. package/dist/lib/components/TitleDescriptionBox/TitleDescriptionBox.css +1 -1
  141. package/dist/lib/components/TitleDescriptionBox/TitleDescriptionBox.d.ts +27 -1
  142. package/dist/lib/components/TitleDescriptionBox/TitleDescriptionBox.js +30 -23
  143. package/dist/lib/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  144. package/dist/lib/hooks/useIsomorphicLayoutEffect.js +13 -0
  145. package/dist/lib/index.d.ts +7 -2
  146. package/dist/lib/index.js +45 -10
  147. package/package.json +6 -6
  148. package/dist/es/components/Instructions/img/android-new.png +0 -0
  149. package/dist/es/components/Instructions/img/blackIphone.png +0 -0
  150. package/dist/es/components/Instructions/img/iphone-new.png +0 -0
  151. package/dist/es/components/Instructions/img/iphone12.png +0 -0
  152. package/dist/es/components/Instructions/img/laptop-new.png +0 -0
  153. package/dist/es/components/Stepper/Stepper.css +0 -1
  154. package/dist/es/components/Stepper/Stepper.d.ts +0 -52
  155. package/dist/es/components/Stepper/Stepper.js +0 -159
  156. package/dist/es/components/Stepper/StepperItem.css +0 -1
  157. package/dist/es/components/Stepper/StepperItem.d.ts +0 -57
  158. package/dist/es/components/Stepper/StepperItem.js +0 -99
  159. package/dist/es/components/Stepper/img/separator-mobile.png +0 -0
  160. package/dist/es/components/Stepper/img/separator-vertical.png +0 -0
  161. package/dist/es/components/Stepper/img/separator.png +0 -0
  162. package/dist/lib/components/Instructions/img/android-new.png +0 -0
  163. package/dist/lib/components/Instructions/img/blackIphone.png +0 -0
  164. package/dist/lib/components/Instructions/img/iphone-new.png +0 -0
  165. package/dist/lib/components/Instructions/img/iphone12.png +0 -0
  166. package/dist/lib/components/Instructions/img/laptop-new.png +0 -0
  167. package/dist/lib/components/Stepper/Stepper.css +0 -1
  168. package/dist/lib/components/Stepper/Stepper.d.ts +0 -52
  169. package/dist/lib/components/Stepper/Stepper.js +0 -168
  170. package/dist/lib/components/Stepper/StepperItem.css +0 -1
  171. package/dist/lib/components/Stepper/StepperItem.d.ts +0 -57
  172. package/dist/lib/components/Stepper/StepperItem.js +0 -108
  173. package/dist/lib/components/Stepper/img/separator-mobile.png +0 -0
  174. package/dist/lib/components/Stepper/img/separator-vertical.png +0 -0
  175. package/dist/lib/components/Stepper/img/separator.png +0 -0
  176. /package/dist/es/components/Instructions/img/{iphone15.png → iphone.png} +0 -0
  177. /package/dist/lib/components/Instructions/img/{iphone15.png → iphone.png} +0 -0
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ require("core-js/modules/es.symbol.js");
9
+ require("core-js/modules/es.symbol.description.js");
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _uiCore = require("@megafon/ui-core");
12
+ var _uiHelpers = require("@megafon/ui-helpers");
13
+ var _setRelAttribute = require("../../../helpers/setRelAttribute");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
15
+ var cn = (0, _uiHelpers.cnCreate)('mfui-9-card-on-background');
16
+ var CardOnBackground = function CardOnBackground(_ref) {
17
+ var title = _ref.title,
18
+ description = _ref.description,
19
+ imageSrc = _ref.imageSrc,
20
+ _ref$imageAlt = _ref.imageAlt,
21
+ imageAlt = _ref$imageAlt === void 0 ? '' : _ref$imageAlt,
22
+ button = _ref.button,
23
+ extraButton = _ref.extraButton,
24
+ href = _ref.href,
25
+ target = _ref.target,
26
+ rel = _ref.rel,
27
+ headerHeight = _ref.headerHeight,
28
+ headerRef = _ref.headerRef,
29
+ _ref$classes = _ref.classes,
30
+ classes = _ref$classes === void 0 ? {} : _ref$classes,
31
+ dataAttrs = _ref.dataAttrs;
32
+ var showButtons = !!(button === null || button === void 0 ? void 0 : button.title) || !!(extraButton === null || extraButton === void 0 ? void 0 : extraButton.title);
33
+ var isLink = !!href && !showButtons;
34
+ var ElementType = isLink ? 'a' : 'div';
35
+ var currentRel = (0, _setRelAttribute.setRelAttribute)(rel, target);
36
+ return /*#__PURE__*/_react["default"].createElement(ElementType, (0, _extends2["default"])({
37
+ className: cn({
38
+ active: isLink
39
+ }, [classes.root])
40
+ }, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root, isLink && {
41
+ href: href,
42
+ target: target,
43
+ rel: currentRel
44
+ }), /*#__PURE__*/_react["default"].createElement("div", {
45
+ className: cn('content')
46
+ }, /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
47
+ className: cn('header-wrapper')
48
+ }, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.header, {
49
+ style: {
50
+ minHeight: headerHeight
51
+ }
52
+ }), /*#__PURE__*/_react["default"].createElement("div", {
53
+ className: cn('header'),
54
+ ref: headerRef
55
+ }, /*#__PURE__*/_react["default"].createElement(_uiCore.Header, {
56
+ className: cn('title', [classes === null || classes === void 0 ? void 0 : classes.title]),
57
+ dataAttrs: {
58
+ root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.title
59
+ },
60
+ as: "h3",
61
+ align: "center"
62
+ }, (0, _uiHelpers.convert)(title, _uiHelpers.titleConvertConfig)), !!description && /*#__PURE__*/_react["default"].createElement("div", {
63
+ className: cn('description')
64
+ }, (0, _uiHelpers.convert)(description, _uiHelpers.textConvertConfig)))), /*#__PURE__*/_react["default"].createElement("div", {
65
+ className: cn('image-wrapper')
66
+ }, /*#__PURE__*/_react["default"].createElement("img", {
67
+ className: cn('image'),
68
+ src: imageSrc,
69
+ alt: imageAlt
70
+ })), showButtons && /*#__PURE__*/_react["default"].createElement("div", {
71
+ className: cn('buttons')
72
+ }, !!(button === null || button === void 0 ? void 0 : button.title) && /*#__PURE__*/_react["default"].createElement("div", {
73
+ className: cn('button')
74
+ }, /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
75
+ className: classes.button,
76
+ dataAttrs: {
77
+ root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button
78
+ },
79
+ theme: "green",
80
+ fullWidth: true,
81
+ href: button.href,
82
+ target: button.target,
83
+ rel: (0, _setRelAttribute.setRelAttribute)(button.rel, button.target),
84
+ onClick: button.onClick
85
+ }, button.title)), !!(extraButton === null || extraButton === void 0 ? void 0 : extraButton.title) && /*#__PURE__*/_react["default"].createElement("div", {
86
+ className: cn('button')
87
+ }, /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
88
+ className: classes.extraButton,
89
+ dataAttrs: {
90
+ root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.extraButton
91
+ },
92
+ theme: "gray",
93
+ fullWidth: true,
94
+ href: extraButton.href,
95
+ target: extraButton.target,
96
+ rel: (0, _setRelAttribute.setRelAttribute)(extraButton.rel, extraButton.target),
97
+ onClick: extraButton.onClick
98
+ }, extraButton.title)))));
99
+ };
100
+ var _default = exports["default"] = CardOnBackground;
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ type TargetType = '_self' | '_blank' | '_parent' | '_top';
3
+ export type ButtonType = {
4
+ /** Название */
5
+ title: string;
6
+ /** Ссылка */
7
+ href?: string;
8
+ /** Атрибут ссылки target */
9
+ target?: TargetType;
10
+ /** Атрибут ссылки rel */
11
+ rel?: string;
12
+ /** Обработчик клика */
13
+ onClick?: (e: React.SyntheticEvent<EventTarget>) => void;
14
+ };
15
+ export type CardDataType = {
16
+ /** Заголовок */
17
+ title: string;
18
+ /** Текст-описание */
19
+ description?: string;
20
+ /** Изображение */
21
+ imageSrc: string;
22
+ /** Значение тега alt для изображения */
23
+ imageAlt?: string;
24
+ /** Кнопка */
25
+ button?: ButtonType;
26
+ /** Дополнительная кнопка */
27
+ extraButton?: ButtonType;
28
+ /** Ссылка */
29
+ href?: string;
30
+ /** Атрибут ссылки target */
31
+ target?: TargetType;
32
+ /** Атрибут ссылки rel */
33
+ rel?: string;
34
+ };
35
+ export declare const BackgroundColor: {
36
+ readonly GRAY: "gray";
37
+ readonly GREEN: "green";
38
+ readonly BLUE: "blue";
39
+ readonly VIOLET: "violet";
40
+ };
41
+ export type BackgroundColorType = (typeof BackgroundColor)[keyof typeof BackgroundColor];
42
+ export declare const SingleCardAlign: {
43
+ readonly LEFT: "left";
44
+ readonly CENTER: "center";
45
+ };
46
+ export type SingleCardAlignType = (typeof SingleCardAlign)[keyof typeof SingleCardAlign];
47
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SingleCardAlign = exports.BackgroundColor = void 0;
7
+ var BackgroundColor = exports.BackgroundColor = {
8
+ GRAY: 'gray',
9
+ GREEN: 'green',
10
+ BLUE: 'blue',
11
+ VIOLET: 'violet'
12
+ };
13
+ var SingleCardAlign = exports.SingleCardAlign = {
14
+ LEFT: 'left',
15
+ CENTER: 'center'
16
+ };
@@ -0,0 +1,9 @@
1
+ type UseUniformHeightsOptions = {
2
+ disabled?: boolean;
3
+ };
4
+ type UseUniformHeightsReturnType = {
5
+ maxHeight: number;
6
+ getRef: (index: number) => (element: HTMLElement | null) => void;
7
+ };
8
+ declare const useUniformHeights: (itemsCount: number, options?: UseUniformHeightsOptions) => UseUniformHeightsReturnType;
9
+ export default useUniformHeights;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ require("core-js/modules/es.array.concat.js");
10
+ require("core-js/modules/es.array.for-each.js");
11
+ require("core-js/modules/es.array.map.js");
12
+ require("core-js/modules/es.object.to-string.js");
13
+ require("core-js/modules/web.dom-collections.for-each.js");
14
+ var _react = _interopRequireDefault(require("react"));
15
+ var _useIsomorphicLayoutEffect = _interopRequireDefault(require("../../hooks/useIsomorphicLayoutEffect"));
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
17
+ var useUniformHeights = function useUniformHeights(itemsCount) {
18
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
19
+ var _options$disabled = options.disabled,
20
+ disabled = _options$disabled === void 0 ? false : _options$disabled;
21
+ var _React$useState = _react["default"].useState(0),
22
+ _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
23
+ maxHeight = _React$useState2[0],
24
+ setMaxHeight = _React$useState2[1];
25
+ var refs = _react["default"].useRef([]);
26
+ var observerRef = _react["default"].useRef(null);
27
+ var maxHeightRef = _react["default"].useRef(maxHeight);
28
+ var updateMaxHeight = _react["default"].useCallback(function () {
29
+ if (disabled) {
30
+ return;
31
+ }
32
+ var heights = refs.current.map(function (ref) {
33
+ return (ref === null || ref === void 0 ? void 0 : ref.offsetHeight) || 0;
34
+ });
35
+ var newMaxHeight = Math.ceil(Math.max.apply(Math, (0, _toConsumableArray2["default"])(heights).concat([0])));
36
+ if (newMaxHeight !== maxHeightRef.current) {
37
+ maxHeightRef.current = newMaxHeight;
38
+ setMaxHeight(newMaxHeight);
39
+ }
40
+ }, [disabled]);
41
+ (0, _useIsomorphicLayoutEffect["default"])(function () {
42
+ if (disabled) {
43
+ return undefined;
44
+ }
45
+ if (!observerRef.current) {
46
+ observerRef.current = new ResizeObserver(function () {
47
+ requestAnimationFrame(function () {
48
+ updateMaxHeight();
49
+ });
50
+ });
51
+ }
52
+ return function () {
53
+ var _a;
54
+ (_a = observerRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
55
+ };
56
+ }, [disabled, updateMaxHeight]);
57
+ (0, _useIsomorphicLayoutEffect["default"])(function () {
58
+ var _a;
59
+ if (disabled) {
60
+ (_a = observerRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
61
+ maxHeightRef.current = 0;
62
+ setMaxHeight(0);
63
+ return;
64
+ }
65
+ var observer = observerRef.current;
66
+ if (!observer) {
67
+ return;
68
+ }
69
+ observer.disconnect();
70
+ refs.current.forEach(function (ref) {
71
+ if (ref) {
72
+ observer.observe(ref);
73
+ }
74
+ });
75
+ updateMaxHeight();
76
+ }, [itemsCount, disabled, updateMaxHeight]);
77
+ var getRef = _react["default"].useCallback(function (index) {
78
+ return function (element) {
79
+ var observer = observerRef.current;
80
+ var oldElement = refs.current[index];
81
+ if (oldElement && observer) {
82
+ observer.unobserve(oldElement);
83
+ }
84
+ refs.current[index] = element;
85
+ if (element && observer && !disabled) {
86
+ observer.observe(element);
87
+ }
88
+ };
89
+ }, [disabled]);
90
+ return {
91
+ maxHeight: maxHeight,
92
+ getRef: getRef
93
+ };
94
+ };
95
+ var _default = exports["default"] = useUniformHeights;