@megafon/ui-shared 4.12.0 → 4.13.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 (34) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/es/components/ButtonBanner/ButtonBanner.d.ts +2 -0
  3. package/dist/es/components/ButtonBanner/ButtonBanner.js +3 -0
  4. package/dist/es/components/ButtonLinkBox/ButtonLinkBox.d.ts +4 -0
  5. package/dist/es/components/ButtonLinkBox/ButtonLinkBox.js +7 -1
  6. package/dist/es/components/Card/Card.d.ts +2 -0
  7. package/dist/es/components/Card/Card.js +8 -2
  8. package/dist/es/components/Partners/Partners.d.ts +1 -0
  9. package/dist/es/components/Partners/Partners.js +4 -1
  10. package/dist/es/components/StoreBanner/StoreBanner.d.ts +2 -0
  11. package/dist/es/components/StoreBanner/StoreBanner.js +10 -0
  12. package/dist/es/components/StoreButton/StoreButton.d.ts +1 -1
  13. package/dist/es/components/StoreButton/StoreButton.js +8 -2
  14. package/dist/es/components/VideoBanner/VideoBanner.d.ts +4 -0
  15. package/dist/es/components/VideoBanner/VideoBanner.js +8 -2
  16. package/dist/es/components/VideoBlock/VideoBlock.d.ts +2 -0
  17. package/dist/es/components/VideoBlock/VideoBlock.js +4 -1
  18. package/dist/lib/components/ButtonBanner/ButtonBanner.d.ts +2 -0
  19. package/dist/lib/components/ButtonBanner/ButtonBanner.js +3 -0
  20. package/dist/lib/components/ButtonLinkBox/ButtonLinkBox.d.ts +4 -0
  21. package/dist/lib/components/ButtonLinkBox/ButtonLinkBox.js +7 -1
  22. package/dist/lib/components/Card/Card.d.ts +2 -0
  23. package/dist/lib/components/Card/Card.js +8 -2
  24. package/dist/lib/components/Partners/Partners.d.ts +1 -0
  25. package/dist/lib/components/Partners/Partners.js +4 -1
  26. package/dist/lib/components/StoreBanner/StoreBanner.d.ts +2 -0
  27. package/dist/lib/components/StoreBanner/StoreBanner.js +10 -0
  28. package/dist/lib/components/StoreButton/StoreButton.d.ts +1 -1
  29. package/dist/lib/components/StoreButton/StoreButton.js +8 -2
  30. package/dist/lib/components/VideoBanner/VideoBanner.d.ts +4 -0
  31. package/dist/lib/components/VideoBanner/VideoBanner.js +8 -2
  32. package/dist/lib/components/VideoBlock/VideoBlock.d.ts +2 -0
  33. package/dist/lib/components/VideoBlock/VideoBlock.js +4 -1
  34. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -3,6 +3,32 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.13.1](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@4.13.0...@megafon/ui-shared@4.13.1) (2023-02-22)
7
+
8
+ **Note:** Version bump only for package @megafon/ui-shared
9
+
10
+
11
+
12
+
13
+
14
+ # [4.13.0](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@4.12.0...@megafon/ui-shared@4.13.0) (2023-02-13)
15
+
16
+
17
+ ### Features
18
+
19
+ * **buttonbanner:** add buttonRel prop ([df2f8cd](https://github.com/MegafonWebLab/megafon-ui/commit/df2f8cd7341596114df4bd9d408fced9430d2e7e))
20
+ * **buttonlinkbox:** add buttonRel and linkRel props ([95135a1](https://github.com/MegafonWebLab/megafon-ui/commit/95135a163db6ef84dcedd56fa8a24ec2769d40b5))
21
+ * **card:** add rel prop ([e4f89a3](https://github.com/MegafonWebLab/megafon-ui/commit/e4f89a3990c29763acb7b53863a9ac8d199cc0fe))
22
+ * **partners:** add rel prop ([796d76c](https://github.com/MegafonWebLab/megafon-ui/commit/796d76c5a62e7b010c4ab5a7da19c4d1b0c72deb))
23
+ * **storebanner:** add rel prop ([3f44d31](https://github.com/MegafonWebLab/megafon-ui/commit/3f44d31c9de9844803304cd116a3be226e70d731))
24
+ * **storebutton:** add rel prop ([087b02f](https://github.com/MegafonWebLab/megafon-ui/commit/087b02fa1f3c90a1a35dd7ac0776c021adc12204))
25
+ * **videblock:** add buttonRel prop ([cfbab88](https://github.com/MegafonWebLab/megafon-ui/commit/cfbab88366be66f5a2457a76627ac70d40a76967))
26
+ * **videobanner:** add linkRel and buttonRel props ([2a7269a](https://github.com/MegafonWebLab/megafon-ui/commit/2a7269ae4c28ae6d60deefdedb9aa9474a7fb2cf))
27
+
28
+
29
+
30
+
31
+
6
32
  # [4.12.0](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@4.11.0...@megafon/ui-shared@4.12.0) (2023-02-06)
7
33
 
8
34
 
@@ -46,6 +46,8 @@ export interface IButtonBannerProps {
46
46
  buttonTarget?: ButtonTargetType;
47
47
  /** Цвет кнопки */
48
48
  buttonColor?: ButtonColorType;
49
+ /** Rel - атрибут тега <a> */
50
+ buttonRel?: string;
49
51
  /** Масштабирование изображения */
50
52
  imageScaling?: ImageScalingType;
51
53
  /** Обработчик клика по кнопке */
@@ -43,6 +43,7 @@ var ButtonBanner = function ButtonBanner(_ref) {
43
43
  buttonTarget = _ref$buttonTarget === void 0 ? '_self' : _ref$buttonTarget,
44
44
  _ref$buttonColor = _ref.buttonColor,
45
45
  buttonColor = _ref$buttonColor === void 0 ? 'green' : _ref$buttonColor,
46
+ buttonRel = _ref.buttonRel,
46
47
  _ref$imageScaling = _ref.imageScaling,
47
48
  imageScaling = _ref$imageScaling === void 0 ? 'cover' : _ref$imageScaling,
48
49
  onButtonClick = _ref.onButtonClick;
@@ -52,6 +53,7 @@ var ButtonBanner = function ButtonBanner(_ref) {
52
53
  },
53
54
  className: cn('button', [classes.button]),
54
55
  href: buttonUrl,
56
+ rel: buttonRel,
55
57
  target: buttonTarget,
56
58
  theme: buttonColor,
57
59
  onClick: onButtonClick,
@@ -108,6 +110,7 @@ ButtonBanner.propTypes = {
108
110
  buttonDownload: PropTypes.bool,
109
111
  buttonTarget: PropTypes.oneOf(Object.values(ButtonTarget)),
110
112
  buttonColor: PropTypes.oneOf(Object.values(ButtonColor)),
113
+ buttonRel: PropTypes.string,
111
114
  onButtonClick: PropTypes.func
112
115
  };
113
116
  export default ButtonBanner;
@@ -27,12 +27,16 @@ export interface IButtonLinkBoxProps {
27
27
  buttonColor?: 'green' | 'purple';
28
28
  /** Target свойство кнопки */
29
29
  buttonTarget?: '_self' | '_blank' | '_parent' | '_top';
30
+ /** Rel - атрибут тега <a> для кнопки */
31
+ buttonRel?: string;
30
32
  /** Заголовок ссылки */
31
33
  linkTitle?: string;
32
34
  /** Добавляет атрибут download для тега <a> компонента Button */
33
35
  linkUrl?: string;
34
36
  /** Target свойство ссылки */
35
37
  linkTarget?: '_self' | '_blank' | '_parent' | '_top';
38
+ /** Rel - атрибут тега <a> для ссылки */
39
+ linkRel?: string;
36
40
  /** Добавляет атрибут download к свойству тега <a> */
37
41
  linkDownload?: boolean;
38
42
  /** Горизонтальное выравнивание */
@@ -15,9 +15,11 @@ var ButtonLinkBox = function ButtonLinkBox(_ref) {
15
15
  buttonDownload = _ref.buttonDownload,
16
16
  _ref$buttonColor = _ref.buttonColor,
17
17
  buttonColor = _ref$buttonColor === void 0 ? 'green' : _ref$buttonColor,
18
+ buttonRel = _ref.buttonRel,
18
19
  linkTitle = _ref.linkTitle,
19
20
  linkUrl = _ref.linkUrl,
20
21
  linkDownload = _ref.linkDownload,
22
+ linkRel = _ref.linkRel,
21
23
  align = _ref.align,
22
24
  className = _ref.className,
23
25
  buttonTarget = _ref.buttonTarget,
@@ -42,7 +44,8 @@ var ButtonLinkBox = function ButtonLinkBox(_ref) {
42
44
  theme: buttonColor,
43
45
  onClick: onButtonClick,
44
46
  target: buttonTarget,
45
- download: buttonDownload
47
+ download: buttonDownload,
48
+ rel: buttonRel
46
49
  }, buttonTitle)), linkTitle && /*#__PURE__*/React.createElement("div", {
47
50
  className: cn('row')
48
51
  }, /*#__PURE__*/React.createElement(TextLink, {
@@ -54,6 +57,7 @@ var ButtonLinkBox = function ButtonLinkBox(_ref) {
54
57
  download: linkDownload,
55
58
  underlineVisibility: "always",
56
59
  target: linkTarget,
60
+ rel: linkRel,
57
61
  onClick: onLinkClick
58
62
  }, linkTitle)));
59
63
  };
@@ -77,9 +81,11 @@ ButtonLinkBox.propTypes = {
77
81
  buttonUrl: PropTypes.string,
78
82
  buttonDownload: PropTypes.bool,
79
83
  buttonColor: PropTypes.oneOf(['green', 'purple']),
84
+ buttonRel: PropTypes.string,
80
85
  linkTitle: PropTypes.string,
81
86
  linkUrl: PropTypes.string,
82
87
  linkDownload: PropTypes.bool,
88
+ linkRel: PropTypes.string,
83
89
  align: PropTypes.oneOf(['center']),
84
90
  onButtonClick: PropTypes.func,
85
91
  onLinkClick: PropTypes.func
@@ -10,6 +10,7 @@ interface IButton {
10
10
  href?: string;
11
11
  target?: TargetType;
12
12
  download?: boolean;
13
+ rel?: string;
13
14
  onClick?: () => void;
14
15
  }
15
16
  interface ILink {
@@ -17,6 +18,7 @@ interface ILink {
17
18
  href?: string;
18
19
  target?: TargetType;
19
20
  download?: boolean;
21
+ rel?: string;
20
22
  }
21
23
  export declare const ObjectFit: {
22
24
  readonly FILL: "fill";
@@ -76,7 +76,8 @@ var Card = function Card(_ref) {
76
76
  var linkHref = link.href,
77
77
  linkTitle = link.title,
78
78
  linkTarget = link.target,
79
- download = link.download;
79
+ download = link.download,
80
+ linkRel = link.rel;
80
81
 
81
82
  if (!linkHref || isCardLink) {
82
83
  return /*#__PURE__*/React.createElement("span", {
@@ -88,6 +89,7 @@ var Card = function Card(_ref) {
88
89
  href: linkHref,
89
90
  download: download,
90
91
  target: linkTarget,
92
+ rel: linkRel,
91
93
  dataAttrs: {
92
94
  root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link
93
95
  },
@@ -103,6 +105,7 @@ var Card = function Card(_ref) {
103
105
  btnTitle = button.title,
104
106
  btnTarget = button.target,
105
107
  btnDownload = button.download,
108
+ btnRel = button.rel,
106
109
  btnOnClick = button.onClick;
107
110
  return /*#__PURE__*/React.createElement(Button, {
108
111
  dataAttrs: {
@@ -112,6 +115,7 @@ var Card = function Card(_ref) {
112
115
  href: btnHref,
113
116
  target: btnTarget,
114
117
  download: btnDownload,
118
+ rel: btnRel,
115
119
  onClick: btnOnClick
116
120
  }, btnTitle);
117
121
  }, [button, isCardLink, classes, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button]);
@@ -174,13 +178,15 @@ Card.propTypes = {
174
178
  href: PropTypes.string,
175
179
  target: PropTypes.oneOf(Object.values(Target)),
176
180
  download: PropTypes.bool,
181
+ rel: PropTypes.string,
177
182
  onClick: PropTypes.func
178
183
  }),
179
184
  link: PropTypes.shape({
180
185
  title: PropTypes.string.isRequired,
181
186
  href: PropTypes.string,
182
187
  target: PropTypes.oneOf(Object.values(Target)),
183
- download: PropTypes.bool
188
+ download: PropTypes.bool,
189
+ rel: PropTypes.string
184
190
  }),
185
191
  isCenteredText: PropTypes.bool,
186
192
  isLeftHAlign: PropTypes.bool,
@@ -4,6 +4,7 @@ export declare type ItemType = {
4
4
  src: string;
5
5
  href?: string;
6
6
  alt: string;
7
+ rel?: string;
7
8
  };
8
9
  export interface IPartnersProps {
9
10
  /** Дополнительные data атрибуты к внутренним элементам */
@@ -44,9 +44,11 @@ var Partners = function Partners(_ref) {
44
44
 
45
45
  var src = item.src,
46
46
  href = item.href,
47
- alt = item.alt;
47
+ alt = item.alt,
48
+ rel = item.rel;
48
49
  return /*#__PURE__*/React.createElement(Tile, {
49
50
  href: href,
51
+ rel: rel,
50
52
  shadowLevel: "default",
51
53
  isInteractive: !!href,
52
54
  className: cn('tile'),
@@ -112,6 +114,7 @@ Partners.propTypes = {
112
114
  className: PropTypes.string,
113
115
  items: PropTypes.arrayOf(PropTypes.shape({
114
116
  href: PropTypes.string,
117
+ rel: PropTypes.string,
115
118
  src: PropTypes.string.isRequired,
116
119
  alt: PropTypes.string.isRequired
117
120
  }).isRequired).isRequired,
@@ -37,6 +37,8 @@ export interface IStoreBannerProps {
37
37
  textButton?: string;
38
38
  /** Ссылка для кнопки */
39
39
  linkButton?: string;
40
+ /** Rel - атрибут тега <a> для всех кнопок баннера */
41
+ rel?: string;
40
42
  /** Ссылка на картинку с QR-кодом */
41
43
  qrCode?: string;
42
44
  /** Цветовая тема компонента */
@@ -35,6 +35,7 @@ var StoreBanner = function StoreBanner(_ref) {
35
35
  linkButton = _ref.linkButton,
36
36
  _ref$textButton = _ref.textButton,
37
37
  textButton = _ref$textButton === void 0 ? 'Установите приложение' : _ref$textButton,
38
+ rel = _ref.rel,
38
39
  qrCode = _ref.qrCode,
39
40
  imageSrc = _ref.imageSrc,
40
41
  _ref$theme = _ref.theme,
@@ -85,6 +86,7 @@ var StoreBanner = function StoreBanner(_ref) {
85
86
  },
86
87
  theme: StoreButtonTheme.APP_STORE,
87
88
  href: linkApple,
89
+ rel: rel,
88
90
  onClick: onClickApple,
89
91
  className: cn('store-link', {
90
92
  'app-store': true
@@ -95,6 +97,7 @@ var StoreBanner = function StoreBanner(_ref) {
95
97
  },
96
98
  theme: StoreButtonTheme.GOOGLE_PLAY,
97
99
  href: linkGoogle,
100
+ rel: rel,
98
101
  className: cn('store-link', {
99
102
  'google-play': true
100
103
  }, googleLinkClassName),
@@ -105,6 +108,7 @@ var StoreBanner = function StoreBanner(_ref) {
105
108
  },
106
109
  theme: StoreButtonTheme.HUAWEI_STORE,
107
110
  href: linkHuawei,
111
+ rel: rel,
108
112
  className: cn('store-link', {
109
113
  'huawei-store': true
110
114
  }, huaweiLinkClassName),
@@ -115,6 +119,7 @@ var StoreBanner = function StoreBanner(_ref) {
115
119
  },
116
120
  className: cn('button'),
117
121
  href: linkButton,
122
+ rel: rel,
118
123
  theme: theme === 'green' ? 'purple' : 'green'
119
124
  }, textButton)))), /*#__PURE__*/React.createElement(GridColumn, {
120
125
  all: "4",
@@ -139,6 +144,11 @@ StoreBanner.propTypes = {
139
144
  onClickApple: PropTypes.func,
140
145
  linkGoogle: PropTypes.string,
141
146
  onClickGoogle: PropTypes.func,
147
+ linkHuawei: PropTypes.string,
148
+ onClickHuawei: PropTypes.func,
149
+ textButton: PropTypes.string,
150
+ linkButton: PropTypes.string,
151
+ rel: PropTypes.string,
142
152
  qrCode: PropTypes.string,
143
153
  deviceMask: PropTypes.oneOf(Object.values(DeviceMask)).isRequired,
144
154
  imageSrc: PropTypes.string.isRequired,
@@ -7,7 +7,7 @@ export declare enum Theme {
7
7
  HUAWEI_STORE = "huawei-store"
8
8
  }
9
9
  declare type LinkPropTypes = React.ComponentProps<typeof Link>;
10
- export declare type Props = Required<Pick<LinkPropTypes, 'href'>> & Pick<LinkPropTypes, 'target'> & Pick<LinkPropTypes, 'onClick' | 'dataAttrs'> & {
10
+ export declare type Props = Required<Pick<LinkPropTypes, 'href'>> & Pick<LinkPropTypes, 'target' | 'rel' | 'onClick' | 'dataAttrs'> & {
11
11
  /** Тема кнопки */
12
12
  theme: Theme;
13
13
  /** Дополнительный класс */
@@ -33,13 +33,15 @@ var cn = cnCreate('mfui-store-button');
33
33
 
34
34
  var StoreButton = function StoreButton(_a) {
35
35
  var href = _a.href,
36
+ rel = _a.rel,
36
37
  onClick = _a.onClick,
37
38
  theme = _a.theme,
38
39
  className = _a.className,
39
- rest = __rest(_a, ["href", "onClick", "theme", "className"]);
40
+ rest = __rest(_a, ["href", "rel", "onClick", "theme", "className"]);
40
41
 
41
42
  return /*#__PURE__*/React.createElement(Link, _extends({}, rest, {
42
43
  href: href,
44
+ rel: rel,
43
45
  onClick: onClick,
44
46
  className: cn({
45
47
  theme: theme
@@ -49,9 +51,13 @@ var StoreButton = function StoreButton(_a) {
49
51
 
50
52
  StoreButton.propTypes = {
51
53
  href: PropTypes.string.isRequired,
54
+ rel: PropTypes.string,
52
55
  theme: PropTypes.oneOf(Object.values(Theme)).isRequired,
53
56
  onClick: PropTypes.func,
54
57
  className: PropTypes.string,
55
- target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])
58
+ target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),
59
+ dataAttrs: PropTypes.shape({
60
+ root: PropTypes.objectOf(PropTypes.string.isRequired)
61
+ })
56
62
  };
57
63
  export default StoreButton;
@@ -34,6 +34,8 @@ export interface IContent {
34
34
  buttonTarget?: '_self' | '_blank' | '_parent' | '_top';
35
35
  /** Добавляет атрибут download для тега <a> компонента Button */
36
36
  buttonDownload?: boolean;
37
+ /** Добавляет атрибут rel для тега <a> компонента Button */
38
+ buttonRel?: string;
37
39
  /** Цвет кнопки */
38
40
  buttonColor?: ButtonColorType;
39
41
  /** Обработчик клика по кнопке */
@@ -52,6 +54,8 @@ export interface IContent {
52
54
  linkTarget?: '_self' | '_blank' | '_parent' | '_top';
53
55
  /** Добавляет атрибут download для тега <a> компонента TextLink */
54
56
  linkDownload?: boolean;
57
+ /** Добавляет атрибут rel для тега <a> компонента TextLink */
58
+ linkRel?: string;
55
59
  /** Строка со стоимостью услуги */
56
60
  cost?: string;
57
61
  }
@@ -86,6 +86,7 @@ var VideoBanner = function VideoBanner(_ref2) {
86
86
  buttonDownload = _ref3.buttonDownload,
87
87
  _ref3$buttonColor = _ref3.buttonColor,
88
88
  buttonColor = _ref3$buttonColor === void 0 ? ButtonColor.GREEN : _ref3$buttonColor,
89
+ buttonRel = _ref3.buttonRel,
89
90
  onButtonClick = _ref3.onButtonClick,
90
91
  onLinkClick = _ref3.onLinkClick,
91
92
  _ref3$textColor = _ref3.textColor,
@@ -95,6 +96,7 @@ var VideoBanner = function VideoBanner(_ref2) {
95
96
  linkUrl = _ref3.linkUrl,
96
97
  linkTarget = _ref3.linkTarget,
97
98
  linkDownload = _ref3.linkDownload,
99
+ linkRel = _ref3.linkRel,
98
100
  cost = _ref3.cost;
99
101
  return /*#__PURE__*/React.createElement(Grid, {
100
102
  className: cn('grid'),
@@ -132,7 +134,8 @@ var VideoBanner = function VideoBanner(_ref2) {
132
134
  href: buttonHref,
133
135
  target: buttonTarget,
134
136
  onClick: onButtonClick,
135
- download: buttonDownload
137
+ download: buttonDownload,
138
+ rel: buttonRel
136
139
  }, buttonTitle), linkTitle && /*#__PURE__*/React.createElement(TextLink, {
137
140
  dataAttrs: {
138
141
  root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link
@@ -141,7 +144,8 @@ var VideoBanner = function VideoBanner(_ref2) {
141
144
  href: linkUrl,
142
145
  download: linkDownload,
143
146
  target: linkTarget,
144
- onClick: onLinkClick
147
+ onClick: onLinkClick,
148
+ rel: linkRel
145
149
  }, linkTitle)))));
146
150
  }, [classes.button, classes.link, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link]);
147
151
  var renderVideo = React.useCallback(function () {
@@ -265,6 +269,7 @@ VideoBanner.propTypes = {
265
269
  buttonHref: PropTypes.string,
266
270
  buttonDownload: PropTypes.bool,
267
271
  buttonColor: PropTypes.oneOf(Object.values(ButtonColor)),
272
+ buttonRel: PropTypes.string,
268
273
  onButtonClick: PropTypes.func,
269
274
  onLinkClick: PropTypes.func,
270
275
  textColor: PropTypes.oneOf(Object.values(TextColor)),
@@ -272,6 +277,7 @@ VideoBanner.propTypes = {
272
277
  linkTitle: PropTypes.string,
273
278
  linkUrl: PropTypes.string,
274
279
  linkDownload: PropTypes.bool,
280
+ linkRel: PropTypes.string,
275
281
  cost: PropTypes.string
276
282
  }),
277
283
  isMuted: PropTypes.bool,
@@ -9,6 +9,8 @@ export interface IContent {
9
9
  buttonTitle?: string;
10
10
  /** Добавляет атрибут download для тега <a> компонента Button */
11
11
  buttonDownload?: boolean;
12
+ /** Добавляет атрибут rel для тега <a> компонента Button */
13
+ buttonRel?: string;
12
14
  /** Ссылка на кнопке */
13
15
  href?: string;
14
16
  /** Обработчик клика по кнопке */
@@ -98,6 +98,7 @@ var VideoBlock = function VideoBlock(_ref) {
98
98
  href = _ref2.href,
99
99
  buttonDownload = _ref2.buttonDownload,
100
100
  buttonTitle = _ref2.buttonTitle,
101
+ buttonRel = _ref2.buttonRel,
101
102
  onButtonClick = _ref2.onButtonClick;
102
103
  return /*#__PURE__*/React.createElement("div", {
103
104
  className: cn('content', {
@@ -115,7 +116,8 @@ var VideoBlock = function VideoBlock(_ref) {
115
116
  className: cn('button', [classes.button]),
116
117
  href: href,
117
118
  onClick: onButtonClick,
118
- download: buttonDownload
119
+ download: buttonDownload,
120
+ rel: buttonRel
119
121
  }, buttonTitle));
120
122
  }, [classes.button, classes.description, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button, contentPositionRight]);
121
123
  var renderGridColumns = React.useCallback(function () {
@@ -176,6 +178,7 @@ VideoBlock.propTypes = {
176
178
  href: PropTypes.string,
177
179
  buttonTitle: PropTypes.string,
178
180
  buttonDownload: PropTypes.bool,
181
+ buttonRel: PropTypes.string,
179
182
  onButtonClick: PropTypes.func
180
183
  }),
181
184
  videoType: PropTypes.oneOf(Object.values(VideoTypes)),
@@ -46,6 +46,8 @@ export interface IButtonBannerProps {
46
46
  buttonTarget?: ButtonTargetType;
47
47
  /** Цвет кнопки */
48
48
  buttonColor?: ButtonColorType;
49
+ /** Rel - атрибут тега <a> */
50
+ buttonRel?: string;
49
51
  /** Масштабирование изображения */
50
52
  imageScaling?: ImageScalingType;
51
53
  /** Обработчик клика по кнопке */
@@ -66,6 +66,7 @@ var ButtonBanner = function ButtonBanner(_ref) {
66
66
  buttonTarget = _ref$buttonTarget === void 0 ? '_self' : _ref$buttonTarget,
67
67
  _ref$buttonColor = _ref.buttonColor,
68
68
  buttonColor = _ref$buttonColor === void 0 ? 'green' : _ref$buttonColor,
69
+ buttonRel = _ref.buttonRel,
69
70
  _ref$imageScaling = _ref.imageScaling,
70
71
  imageScaling = _ref$imageScaling === void 0 ? 'cover' : _ref$imageScaling,
71
72
  onButtonClick = _ref.onButtonClick;
@@ -76,6 +77,7 @@ var ButtonBanner = function ButtonBanner(_ref) {
76
77
  },
77
78
  className: cn('button', [classes.button]),
78
79
  href: buttonUrl,
80
+ rel: buttonRel,
79
81
  target: buttonTarget,
80
82
  theme: buttonColor,
81
83
  onClick: onButtonClick,
@@ -133,6 +135,7 @@ ButtonBanner.propTypes = {
133
135
  buttonDownload: PropTypes.bool,
134
136
  buttonTarget: PropTypes.oneOf(Object.values(ButtonTarget)),
135
137
  buttonColor: PropTypes.oneOf(Object.values(ButtonColor)),
138
+ buttonRel: PropTypes.string,
136
139
  onButtonClick: PropTypes.func
137
140
  };
138
141
  var _default = ButtonBanner;
@@ -27,12 +27,16 @@ export interface IButtonLinkBoxProps {
27
27
  buttonColor?: 'green' | 'purple';
28
28
  /** Target свойство кнопки */
29
29
  buttonTarget?: '_self' | '_blank' | '_parent' | '_top';
30
+ /** Rel - атрибут тега <a> для кнопки */
31
+ buttonRel?: string;
30
32
  /** Заголовок ссылки */
31
33
  linkTitle?: string;
32
34
  /** Добавляет атрибут download для тега <a> компонента Button */
33
35
  linkUrl?: string;
34
36
  /** Target свойство ссылки */
35
37
  linkTarget?: '_self' | '_blank' | '_parent' | '_top';
38
+ /** Rel - атрибут тега <a> для ссылки */
39
+ linkRel?: string;
36
40
  /** Добавляет атрибут download к свойству тега <a> */
37
41
  linkDownload?: boolean;
38
42
  /** Горизонтальное выравнивание */
@@ -35,9 +35,11 @@ var ButtonLinkBox = function ButtonLinkBox(_ref) {
35
35
  buttonDownload = _ref.buttonDownload,
36
36
  _ref$buttonColor = _ref.buttonColor,
37
37
  buttonColor = _ref$buttonColor === void 0 ? 'green' : _ref$buttonColor,
38
+ buttonRel = _ref.buttonRel,
38
39
  linkTitle = _ref.linkTitle,
39
40
  linkUrl = _ref.linkUrl,
40
41
  linkDownload = _ref.linkDownload,
42
+ linkRel = _ref.linkRel,
41
43
  align = _ref.align,
42
44
  className = _ref.className,
43
45
  buttonTarget = _ref.buttonTarget,
@@ -62,7 +64,8 @@ var ButtonLinkBox = function ButtonLinkBox(_ref) {
62
64
  theme: buttonColor,
63
65
  onClick: onButtonClick,
64
66
  target: buttonTarget,
65
- download: buttonDownload
67
+ download: buttonDownload,
68
+ rel: buttonRel
66
69
  }, buttonTitle)), linkTitle && /*#__PURE__*/_react["default"].createElement("div", {
67
70
  className: cn('row')
68
71
  }, /*#__PURE__*/_react["default"].createElement(_uiCore.TextLink, {
@@ -74,6 +77,7 @@ var ButtonLinkBox = function ButtonLinkBox(_ref) {
74
77
  download: linkDownload,
75
78
  underlineVisibility: "always",
76
79
  target: linkTarget,
80
+ rel: linkRel,
77
81
  onClick: onLinkClick
78
82
  }, linkTitle)));
79
83
  };
@@ -97,9 +101,11 @@ ButtonLinkBox.propTypes = {
97
101
  buttonUrl: PropTypes.string,
98
102
  buttonDownload: PropTypes.bool,
99
103
  buttonColor: PropTypes.oneOf(['green', 'purple']),
104
+ buttonRel: PropTypes.string,
100
105
  linkTitle: PropTypes.string,
101
106
  linkUrl: PropTypes.string,
102
107
  linkDownload: PropTypes.bool,
108
+ linkRel: PropTypes.string,
103
109
  align: PropTypes.oneOf(['center']),
104
110
  onButtonClick: PropTypes.func,
105
111
  onLinkClick: PropTypes.func
@@ -10,6 +10,7 @@ interface IButton {
10
10
  href?: string;
11
11
  target?: TargetType;
12
12
  download?: boolean;
13
+ rel?: string;
13
14
  onClick?: () => void;
14
15
  }
15
16
  interface ILink {
@@ -17,6 +18,7 @@ interface ILink {
17
18
  href?: string;
18
19
  target?: TargetType;
19
20
  download?: boolean;
21
+ rel?: string;
20
22
  }
21
23
  export declare const ObjectFit: {
22
24
  readonly FILL: "fill";
@@ -95,7 +95,8 @@ var Card = function Card(_ref) {
95
95
  var linkHref = link.href,
96
96
  linkTitle = link.title,
97
97
  linkTarget = link.target,
98
- download = link.download;
98
+ download = link.download,
99
+ linkRel = link.rel;
99
100
 
100
101
  if (!linkHref || isCardLink) {
101
102
  return /*#__PURE__*/_react["default"].createElement("span", {
@@ -107,6 +108,7 @@ var Card = function Card(_ref) {
107
108
  href: linkHref,
108
109
  download: download,
109
110
  target: linkTarget,
111
+ rel: linkRel,
110
112
  dataAttrs: {
111
113
  root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link
112
114
  },
@@ -123,6 +125,7 @@ var Card = function Card(_ref) {
123
125
  btnTitle = button.title,
124
126
  btnTarget = button.target,
125
127
  btnDownload = button.download,
128
+ btnRel = button.rel,
126
129
  btnOnClick = button.onClick;
127
130
  return /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
128
131
  dataAttrs: {
@@ -132,6 +135,7 @@ var Card = function Card(_ref) {
132
135
  href: btnHref,
133
136
  target: btnTarget,
134
137
  download: btnDownload,
138
+ rel: btnRel,
135
139
  onClick: btnOnClick
136
140
  }, btnTitle);
137
141
  }, [button, isCardLink, classes, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button]);
@@ -196,13 +200,15 @@ Card.propTypes = {
196
200
  href: _propTypes["default"].string,
197
201
  target: _propTypes["default"].oneOf(Object.values(Target)),
198
202
  download: _propTypes["default"].bool,
203
+ rel: _propTypes["default"].string,
199
204
  onClick: _propTypes["default"].func
200
205
  }),
201
206
  link: _propTypes["default"].shape({
202
207
  title: _propTypes["default"].string.isRequired,
203
208
  href: _propTypes["default"].string,
204
209
  target: _propTypes["default"].oneOf(Object.values(Target)),
205
- download: _propTypes["default"].bool
210
+ download: _propTypes["default"].bool,
211
+ rel: _propTypes["default"].string
206
212
  }),
207
213
  isCenteredText: _propTypes["default"].bool,
208
214
  isLeftHAlign: _propTypes["default"].bool,
@@ -4,6 +4,7 @@ export declare type ItemType = {
4
4
  src: string;
5
5
  href?: string;
6
6
  alt: string;
7
+ rel?: string;
7
8
  };
8
9
  export interface IPartnersProps {
9
10
  /** Дополнительные data атрибуты к внутренним элементам */
@@ -65,9 +65,11 @@ var Partners = function Partners(_ref) {
65
65
 
66
66
  var src = item.src,
67
67
  href = item.href,
68
- alt = item.alt;
68
+ alt = item.alt,
69
+ rel = item.rel;
69
70
  return /*#__PURE__*/React.createElement(_uiCore.Tile, {
70
71
  href: href,
72
+ rel: rel,
71
73
  shadowLevel: "default",
72
74
  isInteractive: !!href,
73
75
  className: cn('tile'),
@@ -133,6 +135,7 @@ Partners.propTypes = {
133
135
  className: PropTypes.string,
134
136
  items: PropTypes.arrayOf(PropTypes.shape({
135
137
  href: PropTypes.string,
138
+ rel: PropTypes.string,
136
139
  src: PropTypes.string.isRequired,
137
140
  alt: PropTypes.string.isRequired
138
141
  }).isRequired).isRequired,
@@ -37,6 +37,8 @@ export interface IStoreBannerProps {
37
37
  textButton?: string;
38
38
  /** Ссылка для кнопки */
39
39
  linkButton?: string;
40
+ /** Rel - атрибут тега <a> для всех кнопок баннера */
41
+ rel?: string;
40
42
  /** Ссылка на картинку с QR-кодом */
41
43
  qrCode?: string;
42
44
  /** Цветовая тема компонента */
@@ -58,6 +58,7 @@ var StoreBanner = function StoreBanner(_ref) {
58
58
  linkButton = _ref.linkButton,
59
59
  _ref$textButton = _ref.textButton,
60
60
  textButton = _ref$textButton === void 0 ? 'Установите приложение' : _ref$textButton,
61
+ rel = _ref.rel,
61
62
  qrCode = _ref.qrCode,
62
63
  imageSrc = _ref.imageSrc,
63
64
  _ref$theme = _ref.theme,
@@ -108,6 +109,7 @@ var StoreBanner = function StoreBanner(_ref) {
108
109
  },
109
110
  theme: _StoreButton.Theme.APP_STORE,
110
111
  href: linkApple,
112
+ rel: rel,
111
113
  onClick: onClickApple,
112
114
  className: cn('store-link', {
113
115
  'app-store': true
@@ -118,6 +120,7 @@ var StoreBanner = function StoreBanner(_ref) {
118
120
  },
119
121
  theme: _StoreButton.Theme.GOOGLE_PLAY,
120
122
  href: linkGoogle,
123
+ rel: rel,
121
124
  className: cn('store-link', {
122
125
  'google-play': true
123
126
  }, googleLinkClassName),
@@ -128,6 +131,7 @@ var StoreBanner = function StoreBanner(_ref) {
128
131
  },
129
132
  theme: _StoreButton.Theme.HUAWEI_STORE,
130
133
  href: linkHuawei,
134
+ rel: rel,
131
135
  className: cn('store-link', {
132
136
  'huawei-store': true
133
137
  }, huaweiLinkClassName),
@@ -138,6 +142,7 @@ var StoreBanner = function StoreBanner(_ref) {
138
142
  },
139
143
  className: cn('button'),
140
144
  href: linkButton,
145
+ rel: rel,
141
146
  theme: theme === 'green' ? 'purple' : 'green'
142
147
  }, textButton)))), /*#__PURE__*/React.createElement(_uiCore.GridColumn, {
143
148
  all: "4",
@@ -162,6 +167,11 @@ StoreBanner.propTypes = {
162
167
  onClickApple: _propTypes["default"].func,
163
168
  linkGoogle: _propTypes["default"].string,
164
169
  onClickGoogle: _propTypes["default"].func,
170
+ linkHuawei: _propTypes["default"].string,
171
+ onClickHuawei: _propTypes["default"].func,
172
+ textButton: _propTypes["default"].string,
173
+ linkButton: _propTypes["default"].string,
174
+ rel: _propTypes["default"].string,
165
175
  qrCode: _propTypes["default"].string,
166
176
  deviceMask: _propTypes["default"].oneOf(Object.values(DeviceMask)).isRequired,
167
177
  imageSrc: _propTypes["default"].string.isRequired,
@@ -7,7 +7,7 @@ export declare enum Theme {
7
7
  HUAWEI_STORE = "huawei-store"
8
8
  }
9
9
  declare type LinkPropTypes = React.ComponentProps<typeof Link>;
10
- export declare type Props = Required<Pick<LinkPropTypes, 'href'>> & Pick<LinkPropTypes, 'target'> & Pick<LinkPropTypes, 'onClick' | 'dataAttrs'> & {
10
+ export declare type Props = Required<Pick<LinkPropTypes, 'href'>> & Pick<LinkPropTypes, 'target' | 'rel' | 'onClick' | 'dataAttrs'> & {
11
11
  /** Тема кнопки */
12
12
  theme: Theme;
13
13
  /** Дополнительный класс */
@@ -55,13 +55,15 @@ var cn = (0, _uiHelpers.cnCreate)('mfui-store-button');
55
55
 
56
56
  var StoreButton = function StoreButton(_a) {
57
57
  var href = _a.href,
58
+ rel = _a.rel,
58
59
  onClick = _a.onClick,
59
60
  theme = _a.theme,
60
61
  className = _a.className,
61
- rest = __rest(_a, ["href", "onClick", "theme", "className"]);
62
+ rest = __rest(_a, ["href", "rel", "onClick", "theme", "className"]);
62
63
 
63
64
  return /*#__PURE__*/React.createElement(_uiCore.Link, (0, _extends2["default"])({}, rest, {
64
65
  href: href,
66
+ rel: rel,
65
67
  onClick: onClick,
66
68
  className: cn({
67
69
  theme: theme
@@ -71,10 +73,14 @@ var StoreButton = function StoreButton(_a) {
71
73
 
72
74
  StoreButton.propTypes = {
73
75
  href: _propTypes["default"].string.isRequired,
76
+ rel: _propTypes["default"].string,
74
77
  theme: _propTypes["default"].oneOf(Object.values(Theme)).isRequired,
75
78
  onClick: _propTypes["default"].func,
76
79
  className: _propTypes["default"].string,
77
- target: _propTypes["default"].oneOf(['_self', '_blank', '_parent', '_top'])
80
+ target: _propTypes["default"].oneOf(['_self', '_blank', '_parent', '_top']),
81
+ dataAttrs: _propTypes["default"].shape({
82
+ root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
83
+ })
78
84
  };
79
85
  var _default = StoreButton;
80
86
  exports["default"] = _default;
@@ -34,6 +34,8 @@ export interface IContent {
34
34
  buttonTarget?: '_self' | '_blank' | '_parent' | '_top';
35
35
  /** Добавляет атрибут download для тега <a> компонента Button */
36
36
  buttonDownload?: boolean;
37
+ /** Добавляет атрибут rel для тега <a> компонента Button */
38
+ buttonRel?: string;
37
39
  /** Цвет кнопки */
38
40
  buttonColor?: ButtonColorType;
39
41
  /** Обработчик клика по кнопке */
@@ -52,6 +54,8 @@ export interface IContent {
52
54
  linkTarget?: '_self' | '_blank' | '_parent' | '_top';
53
55
  /** Добавляет атрибут download для тега <a> компонента TextLink */
54
56
  linkDownload?: boolean;
57
+ /** Добавляет атрибут rel для тега <a> компонента TextLink */
58
+ linkRel?: string;
55
59
  /** Строка со стоимостью услуги */
56
60
  cost?: string;
57
61
  }
@@ -119,6 +119,7 @@ var VideoBanner = function VideoBanner(_ref2) {
119
119
  buttonDownload = _ref3.buttonDownload,
120
120
  _ref3$buttonColor = _ref3.buttonColor,
121
121
  buttonColor = _ref3$buttonColor === void 0 ? ButtonColor.GREEN : _ref3$buttonColor,
122
+ buttonRel = _ref3.buttonRel,
122
123
  onButtonClick = _ref3.onButtonClick,
123
124
  onLinkClick = _ref3.onLinkClick,
124
125
  _ref3$textColor = _ref3.textColor,
@@ -128,6 +129,7 @@ var VideoBanner = function VideoBanner(_ref2) {
128
129
  linkUrl = _ref3.linkUrl,
129
130
  linkTarget = _ref3.linkTarget,
130
131
  linkDownload = _ref3.linkDownload,
132
+ linkRel = _ref3.linkRel,
131
133
  cost = _ref3.cost;
132
134
  return /*#__PURE__*/_react["default"].createElement(_uiCore.Grid, {
133
135
  className: cn('grid'),
@@ -165,7 +167,8 @@ var VideoBanner = function VideoBanner(_ref2) {
165
167
  href: buttonHref,
166
168
  target: buttonTarget,
167
169
  onClick: onButtonClick,
168
- download: buttonDownload
170
+ download: buttonDownload,
171
+ rel: buttonRel
169
172
  }, buttonTitle), linkTitle && /*#__PURE__*/_react["default"].createElement(_uiCore.TextLink, {
170
173
  dataAttrs: {
171
174
  root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link
@@ -174,7 +177,8 @@ var VideoBanner = function VideoBanner(_ref2) {
174
177
  href: linkUrl,
175
178
  download: linkDownload,
176
179
  target: linkTarget,
177
- onClick: onLinkClick
180
+ onClick: onLinkClick,
181
+ rel: linkRel
178
182
  }, linkTitle)))));
179
183
  }, [classes.button, classes.link, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link]);
180
184
 
@@ -301,6 +305,7 @@ VideoBanner.propTypes = {
301
305
  buttonHref: PropTypes.string,
302
306
  buttonDownload: PropTypes.bool,
303
307
  buttonColor: PropTypes.oneOf(Object.values(ButtonColor)),
308
+ buttonRel: PropTypes.string,
304
309
  onButtonClick: PropTypes.func,
305
310
  onLinkClick: PropTypes.func,
306
311
  textColor: PropTypes.oneOf(Object.values(TextColor)),
@@ -308,6 +313,7 @@ VideoBanner.propTypes = {
308
313
  linkTitle: PropTypes.string,
309
314
  linkUrl: PropTypes.string,
310
315
  linkDownload: PropTypes.bool,
316
+ linkRel: PropTypes.string,
311
317
  cost: PropTypes.string
312
318
  }),
313
319
  isMuted: PropTypes.bool,
@@ -9,6 +9,8 @@ export interface IContent {
9
9
  buttonTitle?: string;
10
10
  /** Добавляет атрибут download для тега <a> компонента Button */
11
11
  buttonDownload?: boolean;
12
+ /** Добавляет атрибут rel для тега <a> компонента Button */
13
+ buttonRel?: string;
12
14
  /** Ссылка на кнопке */
13
15
  href?: string;
14
16
  /** Обработчик клика по кнопке */
@@ -118,6 +118,7 @@ var VideoBlock = function VideoBlock(_ref) {
118
118
  href = _ref2.href,
119
119
  buttonDownload = _ref2.buttonDownload,
120
120
  buttonTitle = _ref2.buttonTitle,
121
+ buttonRel = _ref2.buttonRel,
121
122
  onButtonClick = _ref2.onButtonClick;
122
123
  return /*#__PURE__*/_react["default"].createElement("div", {
123
124
  className: cn('content', {
@@ -135,7 +136,8 @@ var VideoBlock = function VideoBlock(_ref) {
135
136
  className: cn('button', [classes.button]),
136
137
  href: href,
137
138
  onClick: onButtonClick,
138
- download: buttonDownload
139
+ download: buttonDownload,
140
+ rel: buttonRel
139
141
  }, buttonTitle));
140
142
  }, [classes.button, classes.description, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button, contentPositionRight]);
141
143
 
@@ -198,6 +200,7 @@ VideoBlock.propTypes = {
198
200
  href: _propTypes["default"].string,
199
201
  buttonTitle: _propTypes["default"].string,
200
202
  buttonDownload: _propTypes["default"].bool,
203
+ buttonRel: _propTypes["default"].string,
201
204
  onButtonClick: _propTypes["default"].func
202
205
  }),
203
206
  videoType: _propTypes["default"].oneOf(Object.values(VideoTypes)),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megafon/ui-shared",
3
- "version": "4.12.0",
3
+ "version": "4.13.1",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -52,7 +52,7 @@
52
52
  "@babel/preset-env": "^7.8.6",
53
53
  "@babel/preset-react": "^7.8.3",
54
54
  "@babel/preset-typescript": "^7.8.3",
55
- "@megafon/ui-icons": "^2.6.0",
55
+ "@megafon/ui-icons": "^2.7.0",
56
56
  "@svgr/core": "^2.4.1",
57
57
  "@testing-library/jest-dom": "5.16.2",
58
58
  "@testing-library/react": "12.1.2",
@@ -85,7 +85,7 @@
85
85
  },
86
86
  "dependencies": {
87
87
  "@babel/runtime": "^7.8.4",
88
- "@megafon/ui-core": "^4.11.4",
88
+ "@megafon/ui-core": "^4.13.0",
89
89
  "@megafon/ui-helpers": "^2.4.0",
90
90
  "core-js": "^3.6.4",
91
91
  "htmr": "^0.9.2",
@@ -93,5 +93,5 @@
93
93
  "prop-types": "^15.7.2",
94
94
  "swiper": "^6.5.6"
95
95
  },
96
- "gitHead": "e7bdd83cccb39b833ced5eb1a5714f22166a0672"
96
+ "gitHead": "c6b6ee9a988f9563c4b630bd0fad47c432172e65"
97
97
  }