@megafon/ui-shared 4.21.2 → 5.0.1

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 (32) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/es/components/Card/Card.css +226 -83
  3. package/dist/es/components/Card/Card.d.ts +30 -62
  4. package/dist/es/components/Card/Card.js +237 -157
  5. package/dist/es/components/Card/types.d.ts +71 -0
  6. package/dist/es/components/Card/types.js +0 -0
  7. package/dist/es/components/CardsBox/CardsBox.d.ts +4 -7
  8. package/dist/es/components/CardsBox/CardsBox.js +21 -67
  9. package/dist/es/components/CardsBox/helpers.d.ts +10 -0
  10. package/dist/es/components/CardsBox/helpers.js +25 -0
  11. package/dist/es/components/CarouselBox/CarouselBox.d.ts +6 -1
  12. package/dist/es/components/CarouselBox/CarouselBox.js +30 -3
  13. package/dist/es/components/Property/Property.js +2 -2
  14. package/dist/es/components/Property/types.d.ts +1 -1
  15. package/dist/es/index.d.ts +1 -0
  16. package/dist/es/index.js +1 -0
  17. package/dist/lib/components/Card/Card.css +226 -83
  18. package/dist/lib/components/Card/Card.d.ts +30 -62
  19. package/dist/lib/components/Card/Card.js +233 -160
  20. package/dist/lib/components/Card/types.d.ts +71 -0
  21. package/dist/lib/components/Card/types.js +1 -0
  22. package/dist/lib/components/CardsBox/CardsBox.d.ts +4 -7
  23. package/dist/lib/components/CardsBox/CardsBox.js +19 -67
  24. package/dist/lib/components/CardsBox/helpers.d.ts +10 -0
  25. package/dist/lib/components/CardsBox/helpers.js +35 -0
  26. package/dist/lib/components/CarouselBox/CarouselBox.d.ts +6 -1
  27. package/dist/lib/components/CarouselBox/CarouselBox.js +32 -2
  28. package/dist/lib/components/Property/Property.js +2 -2
  29. package/dist/lib/components/Property/types.d.ts +1 -1
  30. package/dist/lib/index.d.ts +1 -0
  31. package/dist/lib/index.js +8 -0
  32. package/package.json +2 -2
@@ -9,10 +9,6 @@ exports["default"] = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
12
  require("core-js/modules/es.array.map.js");
17
13
 
18
14
  var React = _interopRequireWildcard(require("react"));
@@ -21,11 +17,9 @@ var _uiCore = require("@megafon/ui-core");
21
17
 
22
18
  var _uiHelpers = require("@megafon/ui-helpers");
23
19
 
24
- var _lodash = _interopRequireDefault(require("lodash.throttle"));
25
-
26
20
  var PropTypes = _interopRequireWildcard(require("prop-types"));
27
21
 
28
- var _throttleTime = _interopRequireDefault(require("../../constants/throttleTime"));
22
+ var _helpers = _interopRequireDefault(require("./helpers"));
29
23
 
30
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
25
 
@@ -33,76 +27,34 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
33
27
 
34
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
35
29
 
36
- var _SlidesSettings;
37
-
38
- var MAX_CARDS_COUNT_IN_GRID_ON_MOBILE = 2;
39
- var SlidesSettings = (_SlidesSettings = {}, (0, _defineProperty2["default"])(_SlidesSettings, _uiHelpers.breakpoints.MOBILE_SMALL_START, {
40
- slidesPerView: 1,
41
- spaceBetween: 16
42
- }), (0, _defineProperty2["default"])(_SlidesSettings, _uiHelpers.breakpoints.MOBILE_BIG_START, {
43
- slidesPerView: 2,
44
- spaceBetween: 20
45
- }), _SlidesSettings);
46
30
  var cn = (0, _uiHelpers.cnCreate)('mfui-cards-box');
47
31
 
48
32
  var CardsBox = function CardsBox(_ref) {
49
- var gridHAlign = _ref.gridHAlign,
50
- rootRef = _ref.rootRef,
33
+ var _ref$renderTwoColumns = _ref.renderTwoColumnsInRow,
34
+ renderTwoColumnsInRow = _ref$renderTwoColumns === void 0 ? false : _ref$renderTwoColumns,
51
35
  dataAttrs = _ref.dataAttrs,
52
- onChange = _ref.onChange,
53
36
  children = _ref.children;
54
-
55
- var _React$useState = React.useState(false),
56
- _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
57
- isMobile = _React$useState2[0],
58
- setIsMobile = _React$useState2[1];
59
-
60
- var itemsCount = React.Children.count(children);
61
- var isRenderCarousel = isMobile && itemsCount > MAX_CARDS_COUNT_IN_GRID_ON_MOBILE;
62
- var renderGrid = React.useCallback(function () {
63
- return /*#__PURE__*/React.createElement(_uiCore.Grid, {
64
- guttersBottom: "medium",
65
- guttersLeft: "medium",
66
- hAlign: gridHAlign
67
- }, React.Children.map(children, function (child) {
68
- return /*#__PURE__*/React.createElement(_uiCore.GridColumn, {
69
- all: "4",
70
- mobile: "12"
71
- }, child);
72
- }));
73
- }, [children, gridHAlign]);
74
- var renderCarousel = React.useCallback(function () {
75
- return /*#__PURE__*/React.createElement(_uiCore.Carousel, {
76
- slidesSettings: SlidesSettings,
77
- onChange: onChange
78
- }, children);
79
- }, [children, onChange]);
80
- React.useEffect(function () {
81
- var resizeHandler = function resizeHandler() {
82
- return window.innerWidth <= _uiHelpers.breakpoints.MOBILE_BIG_END ? setIsMobile(true) : setIsMobile(false);
83
- };
84
-
85
- var resizeHandlerThrottled = (0, _lodash["default"])(resizeHandler, _throttleTime["default"].resize);
86
- resizeHandler();
87
- window.addEventListener('resize', resizeHandlerThrottled);
88
- return function () {
89
- window.removeEventListener('resize', resizeHandlerThrottled);
90
- };
91
- }, []);
92
37
  return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
93
- className: cn(),
94
- ref: rootRef
95
- }, (0, _uiHelpers.filterDataAttrs)(dataAttrs)), isRenderCarousel ? renderCarousel() : renderGrid());
38
+ className: cn()
39
+ }, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement(_uiCore.Grid, {
40
+ guttersBottom: "medium",
41
+ guttersLeft: "medium"
42
+ }, React.Children.map(children, function (child, i) {
43
+ return /*#__PURE__*/React.createElement(_uiCore.GridColumn, (0, _extends2["default"])({
44
+ dataAttrs: {
45
+ root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.column
46
+ }
47
+ }, (0, _helpers["default"])(React.Children.count(children), i, renderTwoColumnsInRow)), child);
48
+ })));
96
49
  };
97
50
 
98
51
  CardsBox.propTypes = {
99
- gridHAlign: PropTypes.oneOf(['left', 'right', 'center', 'between', 'around']),
100
- rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
101
- current: PropTypes.elementType
102
- }), PropTypes.any])]),
52
+ renderTwoColumnsInRow: PropTypes.bool,
103
53
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element.isRequired), PropTypes.element]).isRequired,
104
- dataAttrs: PropTypes.objectOf(PropTypes.string.isRequired),
105
- onChange: PropTypes.func
54
+ dataAttrs: PropTypes.shape({
55
+ root: PropTypes.objectOf(PropTypes.string.isRequired),
56
+ column: PropTypes.objectOf(PropTypes.string.isRequired)
57
+ })
106
58
  };
107
59
  var _default = CardsBox;
108
60
  exports["default"] = _default;
@@ -0,0 +1,10 @@
1
+ declare type TGridSizeValues = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12';
2
+ declare type GridConfig = {
3
+ all?: TGridSizeValues;
4
+ tablet?: TGridSizeValues;
5
+ mobile?: TGridSizeValues;
6
+ leftOffsetWide?: TGridSizeValues;
7
+ leftOffsetDesktop?: TGridSizeValues;
8
+ };
9
+ declare const getColumnConfig: (count: number, index: number, renderTwoColumnsInRow: boolean) => GridConfig;
10
+ export default getColumnConfig;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ var getColumnConfig = function getColumnConfig(count, index, renderTwoColumnsInRow) {
13
+ var offset = renderTwoColumnsInRow ? '2' : undefined;
14
+ var offsetForEvenColumn = index % 2 ? undefined : offset;
15
+ var columnSize = {
16
+ all: '4',
17
+ tablet: '6',
18
+ mobile: '12'
19
+ };
20
+
21
+ switch (count) {
22
+ case 2:
23
+ case 4:
24
+ return (0, _extends2["default"])((0, _extends2["default"])({}, columnSize), {
25
+ leftOffsetWide: offsetForEvenColumn,
26
+ leftOffsetDesktop: offsetForEvenColumn
27
+ });
28
+
29
+ default:
30
+ return (0, _extends2["default"])({}, columnSize);
31
+ }
32
+ };
33
+
34
+ var _default = getColumnConfig;
35
+ exports["default"] = _default;
@@ -1,5 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { Carousel } from '@megafon/ui-core';
3
3
  declare type CarouselPropsTypes = React.ComponentProps<typeof Carousel>;
4
- declare const CarouselBox: React.FC<CarouselPropsTypes>;
4
+ declare type DesktopSlidesPerView = 3 | 4;
5
+ interface ICarouselBox extends CarouselPropsTypes {
6
+ /** Количество видимых слайдов на разрешении 1280 и выше */
7
+ desktopSlidesPerView?: DesktopSlidesPerView;
8
+ }
9
+ declare const CarouselBox: React.FC<ICarouselBox>;
5
10
  export default CarouselBox;
@@ -7,6 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
10
14
  require("core-js/modules/es.array.index-of.js");
11
15
 
12
16
  require("core-js/modules/es.symbol.js");
@@ -21,6 +25,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
21
25
 
22
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
27
 
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
29
+
24
30
  var __rest = void 0 && (void 0).__rest || function (s, e) {
25
31
  var t = {};
26
32
 
@@ -34,15 +40,39 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
34
40
  return t;
35
41
  };
36
42
 
43
+ var getDefaultSlideSettings = function getDefaultSlideSettings(desktopSlidesPerView) {
44
+ var _ref;
45
+
46
+ return _ref = {}, (0, _defineProperty2["default"])(_ref, _uiHelpers.breakpoints.MOBILE_SMALL_START, {
47
+ slidesPerView: 1,
48
+ spaceBetween: 16
49
+ }), (0, _defineProperty2["default"])(_ref, _uiHelpers.breakpoints.MOBILE_BIG_START, {
50
+ slidesPerView: 2,
51
+ spaceBetween: 20
52
+ }), (0, _defineProperty2["default"])(_ref, _uiHelpers.breakpoints.DESKTOP_SMALL_START, {
53
+ slidesPerView: 3,
54
+ spaceBetween: 20
55
+ }), (0, _defineProperty2["default"])(_ref, _uiHelpers.breakpoints.DESKTOP_MIDDLE_START, {
56
+ slidesPerView: desktopSlidesPerView,
57
+ spaceBetween: 20
58
+ }), _ref;
59
+ };
60
+
37
61
  var cn = (0, _uiHelpers.cnCreate)('mfui-carousel-box');
38
62
 
39
63
  var CarouselBox = function CarouselBox(_a) {
40
64
  var children = _a.children,
41
- props = __rest(_a, ["children"]);
65
+ slidesSettings = _a.slidesSettings,
66
+ _a$desktopSlidesPerVi = _a.desktopSlidesPerView,
67
+ desktopSlidesPerView = _a$desktopSlidesPerVi === void 0 ? 4 : _a$desktopSlidesPerVi,
68
+ props = __rest(_a, ["children", "slidesSettings", "desktopSlidesPerView"]);
42
69
 
70
+ var settings = slidesSettings || getDefaultSlideSettings(desktopSlidesPerView);
43
71
  return /*#__PURE__*/React.createElement("div", {
44
72
  className: cn()
45
- }, /*#__PURE__*/React.createElement(_uiCore.Carousel, props, children));
73
+ }, /*#__PURE__*/React.createElement(_uiCore.Carousel, (0, _extends2["default"])({}, props, {
74
+ slidesSettings: settings
75
+ }), children));
46
76
  };
47
77
 
48
78
  var _default = CarouselBox;
@@ -152,7 +152,7 @@ var Property = function Property(_ref) {
152
152
  _ref3$titleSize = _ref3.titleSize,
153
153
  titleSize = _ref3$titleSize === void 0 ? 'default' : _ref3$titleSize,
154
154
  _ref3$valueFrameColor = _ref3.valueFrameColor,
155
- valueFrameColor = _ref3$valueFrameColor === void 0 ? 'default' : _ref3$valueFrameColor;
155
+ valueFrameColor = _ref3$valueFrameColor === void 0 ? 'none' : _ref3$valueFrameColor;
156
156
  var isFirstItem = i === 0;
157
157
  var isRenderBadge = isFirstItem && !!badge;
158
158
  return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
@@ -184,7 +184,7 @@ Property.propTypes = {
184
184
  value: _propTypes["default"].string,
185
185
  titleSize: _propTypes["default"].oneOf(['default', 'big']),
186
186
  valueUnit: _propTypes["default"].string,
187
- valueFrameColor: _propTypes["default"].oneOf(['default', 'gray'])
187
+ valueFrameColor: _propTypes["default"].oneOf(['none', 'default', 'gray'])
188
188
  }).isRequired).isRequired,
189
189
  className: _propTypes["default"].string,
190
190
  badge: _propTypes["default"].string,
@@ -16,5 +16,5 @@ export declare type Item = {
16
16
  description?: Desc[];
17
17
  value?: string;
18
18
  valueUnit?: string;
19
- valueFrameColor?: 'default' | 'gray';
19
+ valueFrameColor?: 'none' | 'default' | 'gray';
20
20
  };
@@ -18,6 +18,7 @@ export { default as Container } from './components/Container/Container';
18
18
  export { default as DownloadLink } from './components/DownloadLinks/DownloadLink';
19
19
  export { default as DownloadLinks } from './components/DownloadLinks/DownloadLinks';
20
20
  export { default as FaqWrapper } from './components/FaqWrapper/FaqWrapper';
21
+ export { default as helpers } from './components/CardsBox/helpers';
21
22
  export { default as Instructions } from './components/Instructions/Instructions';
22
23
  export { default as NotificationBox } from './components/NotificationBox/NotificationBox';
23
24
  export { default as PageTitle } from './components/PageTitle/PageTitle';
package/dist/lib/index.js CHANGED
@@ -123,6 +123,12 @@ Object.defineProperty(exports, "FaqWrapper", {
123
123
  return _FaqWrapper["default"];
124
124
  }
125
125
  });
126
+ Object.defineProperty(exports, "helpers", {
127
+ enumerable: true,
128
+ get: function get() {
129
+ return _helpers["default"];
130
+ }
131
+ });
126
132
  Object.defineProperty(exports, "Instructions", {
127
133
  enumerable: true,
128
134
  get: function get() {
@@ -314,6 +320,8 @@ var _DownloadLinks = _interopRequireDefault(require("./components/DownloadLinks/
314
320
 
315
321
  var _FaqWrapper = _interopRequireDefault(require("./components/FaqWrapper/FaqWrapper"));
316
322
 
323
+ var _helpers = _interopRequireDefault(require("./components/CardsBox/helpers"));
324
+
317
325
  var _Instructions = _interopRequireDefault(require("./components/Instructions/Instructions"));
318
326
 
319
327
  var _NotificationBox = _interopRequireDefault(require("./components/NotificationBox/NotificationBox"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megafon/ui-shared",
3
- "version": "4.21.2",
3
+ "version": "5.0.1",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -90,5 +90,5 @@
90
90
  "prop-types": "^15.7.2",
91
91
  "swiper": "^6.5.6"
92
92
  },
93
- "gitHead": "61659ea89aca6bac2ebcd3befa866f430ad0ee30"
93
+ "gitHead": "c69a92daeb0568c343f3ca3b0dc4b2ca6de338d7"
94
94
  }