@megafon/ui-core 8.6.0 → 8.7.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.
@@ -23,7 +23,8 @@ export declare const ButtonSizes: {
23
23
  readonly LARGE: "large";
24
24
  };
25
25
  type ButtonSizesType = (typeof ButtonSizes)[keyof typeof ButtonSizes];
26
- export interface IButtonProps {
26
+ type ButtonLinkCommonAttributes = Pick<React.ButtonHTMLAttributes<HTMLButtonElement> & React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof (React.ButtonHTMLAttributes<HTMLButtonElement> | React.AnchorHTMLAttributes<HTMLAnchorElement>)>;
27
+ export interface IButtonProps extends Omit<ButtonLinkCommonAttributes, 'className' | 'type'> {
27
28
  /** Дополнительный класс корневого элемента */
28
29
  className?: string | string[];
29
30
  /** Дополнительные классы для внутренних элементов */
@@ -1,8 +1,18 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _extends from "@babel/runtime/helpers/extends";
4
+ import "core-js/modules/es.symbol.js";
4
5
  import "core-js/modules/es.array.concat.js";
6
+ import "core-js/modules/es.array.index-of.js";
5
7
  import "core-js/modules/es.array.is-array.js";
8
+ var __rest = this && this.__rest || function (s, e) {
9
+ var t = {};
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
11
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
6
16
  import * as React from 'react';
7
17
  import { cnCreate, detectTouch, filterDataAttrs } from '@megafon/ui-helpers';
8
18
  import Preloader, { PreloaderColors } from "../Preloader/Preloader";
@@ -44,46 +54,47 @@ var getLoaderSize = function getLoaderSize(size) {
44
54
  return size === ButtonSizes.SMALL || size === ButtonSizes.EXTRA_SMALL ? ButtonSizes.SMALL : ButtonSizes.MEDIUM;
45
55
  };
46
56
  var cn = cnCreate('mfui-button');
47
- var Button = function Button(_ref) {
48
- var _ref$classes = _ref.classes,
49
- _ref$classes2 = _ref$classes === void 0 ? {} : _ref$classes,
50
- rootClassName = _ref$classes2.root,
51
- contentClassName = _ref$classes2.content,
52
- innerClassName = _ref$classes2.inner,
53
- _ref$className = _ref.className,
54
- className = _ref$className === void 0 ? '' : _ref$className,
55
- _ref$theme = _ref.theme,
56
- theme = _ref$theme === void 0 ? 'green' : _ref$theme,
57
- _ref$type = _ref.type,
58
- type = _ref$type === void 0 ? 'primary' : _ref$type,
59
- href = _ref.href,
60
- download = _ref.download,
61
- target = _ref.target,
62
- rel = _ref.rel,
63
- _ref$actionType = _ref.actionType,
64
- actionType = _ref$actionType === void 0 ? 'button' : _ref$actionType,
65
- _ref$sizeAll = _ref.sizeAll,
66
- sizeAll = _ref$sizeAll === void 0 ? 'medium' : _ref$sizeAll,
67
- sizeWide = _ref.sizeWide,
68
- sizeDesktop = _ref.sizeDesktop,
69
- sizeTablet = _ref.sizeTablet,
70
- sizeMobile = _ref.sizeMobile,
71
- _ref$fullWidth = _ref.fullWidth,
72
- fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
73
- _ref$fullWidthMobile = _ref.fullWidthMobile,
74
- fullWidthMobile = _ref$fullWidthMobile === void 0 ? false : _ref$fullWidthMobile,
75
- _ref$showLoader = _ref.showLoader,
76
- showLoader = _ref$showLoader === void 0 ? false : _ref$showLoader,
77
- _ref$showArrow = _ref.showArrow,
78
- showArrow = _ref$showArrow === void 0 ? false : _ref$showArrow,
79
- icon = _ref.icon,
80
- disabled = _ref.disabled,
81
- children = _ref.children,
82
- _ref$ellipsis = _ref.ellipsis,
83
- ellipsis = _ref$ellipsis === void 0 ? false : _ref$ellipsis,
84
- onClick = _ref.onClick,
85
- dataAttrs = _ref.dataAttrs,
86
- buttonRef = _ref.buttonRef;
57
+ var Button = function Button(_a) {
58
+ var _a$classes = _a.classes;
59
+ _a$classes = _a$classes === void 0 ? {} : _a$classes;
60
+ var rootClassName = _a$classes.root,
61
+ contentClassName = _a$classes.content,
62
+ innerClassName = _a$classes.inner,
63
+ _a$className = _a.className,
64
+ className = _a$className === void 0 ? '' : _a$className,
65
+ _a$theme = _a.theme,
66
+ theme = _a$theme === void 0 ? 'green' : _a$theme,
67
+ _a$type = _a.type,
68
+ type = _a$type === void 0 ? 'primary' : _a$type,
69
+ href = _a.href,
70
+ download = _a.download,
71
+ target = _a.target,
72
+ rel = _a.rel,
73
+ _a$actionType = _a.actionType,
74
+ actionType = _a$actionType === void 0 ? 'button' : _a$actionType,
75
+ _a$sizeAll = _a.sizeAll,
76
+ sizeAll = _a$sizeAll === void 0 ? 'medium' : _a$sizeAll,
77
+ sizeWide = _a.sizeWide,
78
+ sizeDesktop = _a.sizeDesktop,
79
+ sizeTablet = _a.sizeTablet,
80
+ sizeMobile = _a.sizeMobile,
81
+ _a$fullWidth = _a.fullWidth,
82
+ fullWidth = _a$fullWidth === void 0 ? false : _a$fullWidth,
83
+ _a$fullWidthMobile = _a.fullWidthMobile,
84
+ fullWidthMobile = _a$fullWidthMobile === void 0 ? false : _a$fullWidthMobile,
85
+ _a$showLoader = _a.showLoader,
86
+ showLoader = _a$showLoader === void 0 ? false : _a$showLoader,
87
+ _a$showArrow = _a.showArrow,
88
+ showArrow = _a$showArrow === void 0 ? false : _a$showArrow,
89
+ icon = _a.icon,
90
+ disabled = _a.disabled,
91
+ children = _a.children,
92
+ _a$ellipsis = _a.ellipsis,
93
+ ellipsis = _a$ellipsis === void 0 ? false : _a$ellipsis,
94
+ onClick = _a.onClick,
95
+ dataAttrs = _a.dataAttrs,
96
+ buttonRef = _a.buttonRef,
97
+ rest = __rest(_a, ["classes", "className", "theme", "type", "href", "download", "target", "rel", "actionType", "sizeAll", "sizeWide", "sizeDesktop", "sizeTablet", "sizeMobile", "fullWidth", "fullWidthMobile", "showLoader", "showArrow", "icon", "disabled", "children", "ellipsis", "onClick", "dataAttrs", "buttonRef"]);
87
98
  var _React$useState = React.useState(false),
88
99
  _React$useState2 = _slicedToArray(_React$useState, 2),
89
100
  isTouch = _React$useState2[0],
@@ -173,7 +184,7 @@ var Button = function Button(_ref) {
173
184
  React.useEffect(function () {
174
185
  setTouch(detectTouch());
175
186
  }, []);
176
- return /*#__PURE__*/React.createElement(ElementType, _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
187
+ return /*#__PURE__*/React.createElement(ElementType, _extends({}, rest, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
177
188
  className: cn({
178
189
  type: type,
179
190
  theme: currentTheme,
@@ -24,6 +24,8 @@ export interface ISnackbarProps {
24
24
  hasTextButton?: boolean;
25
25
  /** Отключение анимации закрытия */
26
26
  disableCloseAnimation?: boolean;
27
+ /** Отключение автоматического закрытия */
28
+ disableAutoClose?: boolean;
27
29
  /** Дополнительный класс корневого элемента */
28
30
  className?: string;
29
31
  /** Дополнительные классы для корневого и внутренних элементов */
@@ -102,6 +102,8 @@ var Snackbar = function Snackbar(_ref) {
102
102
  hasTextButton = _ref$hasTextButton === void 0 ? false : _ref$hasTextButton,
103
103
  _ref$disableCloseAnim = _ref.disableCloseAnimation,
104
104
  disableCloseAnimation = _ref$disableCloseAnim === void 0 ? false : _ref$disableCloseAnim,
105
+ _ref$disableAutoClose = _ref.disableAutoClose,
106
+ disableAutoClose = _ref$disableAutoClose === void 0 ? false : _ref$disableAutoClose,
105
107
  className = _ref.className,
106
108
  _ref$classes = _ref.classes,
107
109
  classes = _ref$classes === void 0 ? {} : _ref$classes,
@@ -125,8 +127,9 @@ var Snackbar = function Snackbar(_ref) {
125
127
  var isTimerType = type === TIMER;
126
128
  var isInfoType = type === INFO;
127
129
  var isHiddenIcon = isTimerType || !hasIcon && isInfoType;
128
- var isCustomIcon = isInfoType && icon;
130
+ var isCustomIcon = isInfoType && !!icon;
129
131
  var currentButtonText = buttonText && !isTimerType ? buttonText : defaultSnackbar.buttonText;
132
+ var hideTimer = disableAutoClose && !isTimerType;
130
133
  var setRef = function setRef(instance) {
131
134
  return setContainerRef(instance);
132
135
  };
@@ -187,7 +190,7 @@ var Snackbar = function Snackbar(_ref) {
187
190
  closed: !isOpened
188
191
  }, [classes.container]),
189
192
  radius: "rounded"
190
- }, !isHiddenIcon && renderedIcons, renderedTimer, /*#__PURE__*/React.createElement("div", {
193
+ }, !isHiddenIcon && renderedIcons, !hideTimer && renderedTimer, /*#__PURE__*/React.createElement("div", {
191
194
  className: cn('text-wrapper')
192
195
  }, /*#__PURE__*/React.createElement(Caption, {
193
196
  className: cn('text', {
@@ -23,7 +23,8 @@ export declare const ButtonSizes: {
23
23
  readonly LARGE: "large";
24
24
  };
25
25
  type ButtonSizesType = (typeof ButtonSizes)[keyof typeof ButtonSizes];
26
- export interface IButtonProps {
26
+ type ButtonLinkCommonAttributes = Pick<React.ButtonHTMLAttributes<HTMLButtonElement> & React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof (React.ButtonHTMLAttributes<HTMLButtonElement> | React.AnchorHTMLAttributes<HTMLAnchorElement>)>;
27
+ export interface IButtonProps extends Omit<ButtonLinkCommonAttributes, 'className' | 'type'> {
27
28
  /** Дополнительный класс корневого элемента */
28
29
  className?: string | string[];
29
30
  /** Дополнительные классы для внутренних элементов */
@@ -8,7 +8,9 @@ exports["default"] = exports.ButtonTypes = exports.ButtonThemes = exports.Button
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ require("core-js/modules/es.symbol.js");
11
12
  require("core-js/modules/es.array.concat.js");
13
+ require("core-js/modules/es.array.index-of.js");
12
14
  require("core-js/modules/es.array.is-array.js");
13
15
  var React = _interopRequireWildcard(require("react"));
14
16
  var _uiHelpers = require("@megafon/ui-helpers");
@@ -16,6 +18,14 @@ var _Preloader = _interopRequireWildcard(require("../Preloader/Preloader"));
16
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
18
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
21
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
22
+ var t = {};
23
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
24
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
25
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
26
+ }
27
+ return t;
28
+ };
19
29
  var Arrow = function Arrow(props) {
20
30
  return /*#__PURE__*/React.createElement("svg", (0, _extends2["default"])({
21
31
  viewBox: "0 0 40 40"
@@ -53,46 +63,47 @@ var getLoaderSize = function getLoaderSize(size) {
53
63
  return size === ButtonSizes.SMALL || size === ButtonSizes.EXTRA_SMALL ? ButtonSizes.SMALL : ButtonSizes.MEDIUM;
54
64
  };
55
65
  var cn = (0, _uiHelpers.cnCreate)('mfui-button');
56
- var Button = function Button(_ref) {
57
- var _ref$classes = _ref.classes,
58
- _ref$classes2 = _ref$classes === void 0 ? {} : _ref$classes,
59
- rootClassName = _ref$classes2.root,
60
- contentClassName = _ref$classes2.content,
61
- innerClassName = _ref$classes2.inner,
62
- _ref$className = _ref.className,
63
- className = _ref$className === void 0 ? '' : _ref$className,
64
- _ref$theme = _ref.theme,
65
- theme = _ref$theme === void 0 ? 'green' : _ref$theme,
66
- _ref$type = _ref.type,
67
- type = _ref$type === void 0 ? 'primary' : _ref$type,
68
- href = _ref.href,
69
- download = _ref.download,
70
- target = _ref.target,
71
- rel = _ref.rel,
72
- _ref$actionType = _ref.actionType,
73
- actionType = _ref$actionType === void 0 ? 'button' : _ref$actionType,
74
- _ref$sizeAll = _ref.sizeAll,
75
- sizeAll = _ref$sizeAll === void 0 ? 'medium' : _ref$sizeAll,
76
- sizeWide = _ref.sizeWide,
77
- sizeDesktop = _ref.sizeDesktop,
78
- sizeTablet = _ref.sizeTablet,
79
- sizeMobile = _ref.sizeMobile,
80
- _ref$fullWidth = _ref.fullWidth,
81
- fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
82
- _ref$fullWidthMobile = _ref.fullWidthMobile,
83
- fullWidthMobile = _ref$fullWidthMobile === void 0 ? false : _ref$fullWidthMobile,
84
- _ref$showLoader = _ref.showLoader,
85
- showLoader = _ref$showLoader === void 0 ? false : _ref$showLoader,
86
- _ref$showArrow = _ref.showArrow,
87
- showArrow = _ref$showArrow === void 0 ? false : _ref$showArrow,
88
- icon = _ref.icon,
89
- disabled = _ref.disabled,
90
- children = _ref.children,
91
- _ref$ellipsis = _ref.ellipsis,
92
- ellipsis = _ref$ellipsis === void 0 ? false : _ref$ellipsis,
93
- onClick = _ref.onClick,
94
- dataAttrs = _ref.dataAttrs,
95
- buttonRef = _ref.buttonRef;
66
+ var Button = function Button(_a) {
67
+ var _a$classes = _a.classes;
68
+ _a$classes = _a$classes === void 0 ? {} : _a$classes;
69
+ var rootClassName = _a$classes.root,
70
+ contentClassName = _a$classes.content,
71
+ innerClassName = _a$classes.inner,
72
+ _a$className = _a.className,
73
+ className = _a$className === void 0 ? '' : _a$className,
74
+ _a$theme = _a.theme,
75
+ theme = _a$theme === void 0 ? 'green' : _a$theme,
76
+ _a$type = _a.type,
77
+ type = _a$type === void 0 ? 'primary' : _a$type,
78
+ href = _a.href,
79
+ download = _a.download,
80
+ target = _a.target,
81
+ rel = _a.rel,
82
+ _a$actionType = _a.actionType,
83
+ actionType = _a$actionType === void 0 ? 'button' : _a$actionType,
84
+ _a$sizeAll = _a.sizeAll,
85
+ sizeAll = _a$sizeAll === void 0 ? 'medium' : _a$sizeAll,
86
+ sizeWide = _a.sizeWide,
87
+ sizeDesktop = _a.sizeDesktop,
88
+ sizeTablet = _a.sizeTablet,
89
+ sizeMobile = _a.sizeMobile,
90
+ _a$fullWidth = _a.fullWidth,
91
+ fullWidth = _a$fullWidth === void 0 ? false : _a$fullWidth,
92
+ _a$fullWidthMobile = _a.fullWidthMobile,
93
+ fullWidthMobile = _a$fullWidthMobile === void 0 ? false : _a$fullWidthMobile,
94
+ _a$showLoader = _a.showLoader,
95
+ showLoader = _a$showLoader === void 0 ? false : _a$showLoader,
96
+ _a$showArrow = _a.showArrow,
97
+ showArrow = _a$showArrow === void 0 ? false : _a$showArrow,
98
+ icon = _a.icon,
99
+ disabled = _a.disabled,
100
+ children = _a.children,
101
+ _a$ellipsis = _a.ellipsis,
102
+ ellipsis = _a$ellipsis === void 0 ? false : _a$ellipsis,
103
+ onClick = _a.onClick,
104
+ dataAttrs = _a.dataAttrs,
105
+ buttonRef = _a.buttonRef,
106
+ rest = __rest(_a, ["classes", "className", "theme", "type", "href", "download", "target", "rel", "actionType", "sizeAll", "sizeWide", "sizeDesktop", "sizeTablet", "sizeMobile", "fullWidth", "fullWidthMobile", "showLoader", "showArrow", "icon", "disabled", "children", "ellipsis", "onClick", "dataAttrs", "buttonRef"]);
96
107
  var _React$useState = React.useState(false),
97
108
  _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
98
109
  isTouch = _React$useState2[0],
@@ -182,7 +193,7 @@ var Button = function Button(_ref) {
182
193
  React.useEffect(function () {
183
194
  setTouch((0, _uiHelpers.detectTouch)());
184
195
  }, []);
185
- return /*#__PURE__*/React.createElement(ElementType, (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
196
+ return /*#__PURE__*/React.createElement(ElementType, (0, _extends2["default"])({}, rest, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
186
197
  className: cn({
187
198
  type: type,
188
199
  theme: currentTheme,
@@ -24,6 +24,8 @@ export interface ISnackbarProps {
24
24
  hasTextButton?: boolean;
25
25
  /** Отключение анимации закрытия */
26
26
  disableCloseAnimation?: boolean;
27
+ /** Отключение автоматического закрытия */
28
+ disableAutoClose?: boolean;
27
29
  /** Дополнительный класс корневого элемента */
28
30
  className?: string;
29
31
  /** Дополнительные классы для корневого и внутренних элементов */
@@ -111,6 +111,8 @@ var Snackbar = function Snackbar(_ref) {
111
111
  hasTextButton = _ref$hasTextButton === void 0 ? false : _ref$hasTextButton,
112
112
  _ref$disableCloseAnim = _ref.disableCloseAnimation,
113
113
  disableCloseAnimation = _ref$disableCloseAnim === void 0 ? false : _ref$disableCloseAnim,
114
+ _ref$disableAutoClose = _ref.disableAutoClose,
115
+ disableAutoClose = _ref$disableAutoClose === void 0 ? false : _ref$disableAutoClose,
114
116
  className = _ref.className,
115
117
  _ref$classes = _ref.classes,
116
118
  classes = _ref$classes === void 0 ? {} : _ref$classes,
@@ -134,8 +136,9 @@ var Snackbar = function Snackbar(_ref) {
134
136
  var isTimerType = type === TIMER;
135
137
  var isInfoType = type === INFO;
136
138
  var isHiddenIcon = isTimerType || !hasIcon && isInfoType;
137
- var isCustomIcon = isInfoType && icon;
139
+ var isCustomIcon = isInfoType && !!icon;
138
140
  var currentButtonText = buttonText && !isTimerType ? buttonText : defaultSnackbar.buttonText;
141
+ var hideTimer = disableAutoClose && !isTimerType;
139
142
  var setRef = function setRef(instance) {
140
143
  return setContainerRef(instance);
141
144
  };
@@ -196,7 +199,7 @@ var Snackbar = function Snackbar(_ref) {
196
199
  closed: !isOpened
197
200
  }, [classes.container]),
198
201
  radius: "rounded"
199
- }, !isHiddenIcon && renderedIcons, renderedTimer, /*#__PURE__*/React.createElement("div", {
202
+ }, !isHiddenIcon && renderedIcons, !hideTimer && renderedTimer, /*#__PURE__*/React.createElement("div", {
200
203
  className: cn('text-wrapper')
201
204
  }, /*#__PURE__*/React.createElement(_Caption["default"], {
202
205
  className: cn('text', {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megafon/ui-core",
3
- "version": "8.6.0",
3
+ "version": "8.7.0",
4
4
  "files": [
5
5
  "dist",
6
6
  "styles"
@@ -50,7 +50,7 @@
50
50
  "@babel/preset-env": "^7.8.6",
51
51
  "@babel/preset-react": "^7.8.3",
52
52
  "@babel/preset-typescript": "^7.8.3",
53
- "@megafon/ui-icons": "^3.10.0",
53
+ "@megafon/ui-icons": "^3.10.1",
54
54
  "@svgr/core": "^2.4.1",
55
55
  "@testing-library/jest-dom": "^6.5.0",
56
56
  "@testing-library/react": "^16.0.1",
@@ -104,5 +104,5 @@
104
104
  "simplebar-react": "^3.2.5",
105
105
  "swiper": "^11.1.1"
106
106
  },
107
- "gitHead": "6d52031f7c5db8634f49913026723b2291d3ccc6"
107
+ "gitHead": "3dc2e7509518571130a0f4e4ad3cfc7b581732fa"
108
108
  }