@megafon/ui-core 9.2.2 → 9.3.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.
- package/dist/es/components/Badges/PromoBadge/PromoBadge.css +1 -1
- package/dist/es/components/Badges/PromoBadge/PromoBadge.d.ts +7 -0
- package/dist/es/components/Badges/PromoBadge/PromoBadge.js +44 -4
- package/dist/es/components/Chips/Chips/Chip.css +1 -1
- package/dist/es/components/Chips/Chips/Chip.d.ts +14 -3
- package/dist/es/components/Chips/Chips/Chip.js +31 -5
- package/dist/es/components/Chips/Chips/ChipBadge.css +1 -0
- package/dist/es/components/Chips/Chips/ChipBadge.d.ts +8 -0
- package/dist/es/components/Chips/Chips/ChipBadge.js +29 -0
- package/dist/es/components/Chips/Chips/Chips.css +1 -1
- package/dist/es/components/Chips/Chips/Chips.d.ts +6 -6
- package/dist/es/components/Chips/Chips/Chips.js +2 -2
- package/dist/es/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.css +1 -1
- package/dist/es/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.d.ts +6 -6
- package/dist/es/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.js +5 -9
- package/dist/es/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.css +1 -1
- package/dist/es/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.d.ts +6 -6
- package/dist/es/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.js +2 -2
- package/dist/es/components/Modal/Modal.css +1 -1
- package/dist/es/components/Modal/Modal.js +15 -7
- package/dist/es/components/Modal/utils/utils.d.ts +1 -1
- package/dist/es/components/Modal/utils/utils.js +5 -1
- package/dist/es/components/MultipleSelect/MultipleSelect.css +1 -0
- package/dist/es/components/MultipleSelect/MultipleSelect.d.ts +63 -0
- package/dist/es/components/MultipleSelect/MultipleSelect.js +235 -0
- package/dist/es/components/Tooltip/Tooltip.d.ts +6 -0
- package/dist/es/components/Tooltip/Tooltip.js +19 -6
- package/dist/es/index.d.ts +2 -0
- package/dist/es/index.js +2 -0
- package/dist/lib/components/Badges/PromoBadge/PromoBadge.css +1 -1
- package/dist/lib/components/Badges/PromoBadge/PromoBadge.d.ts +7 -0
- package/dist/lib/components/Badges/PromoBadge/PromoBadge.js +45 -5
- package/dist/lib/components/Chips/Chips/Chip.css +1 -1
- package/dist/lib/components/Chips/Chips/Chip.d.ts +14 -3
- package/dist/lib/components/Chips/Chips/Chip.js +32 -6
- package/dist/lib/components/Chips/Chips/ChipBadge.css +1 -0
- package/dist/lib/components/Chips/Chips/ChipBadge.d.ts +8 -0
- package/dist/lib/components/Chips/Chips/ChipBadge.js +38 -0
- package/dist/lib/components/Chips/Chips/Chips.css +1 -1
- package/dist/lib/components/Chips/Chips/Chips.d.ts +6 -6
- package/dist/lib/components/Chips/Chips/Chips.js +2 -2
- package/dist/lib/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.css +1 -1
- package/dist/lib/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.d.ts +6 -6
- package/dist/lib/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.js +5 -9
- package/dist/lib/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.css +1 -1
- package/dist/lib/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.d.ts +6 -6
- package/dist/lib/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.js +2 -2
- package/dist/lib/components/Modal/Modal.css +1 -1
- package/dist/lib/components/Modal/Modal.js +14 -6
- package/dist/lib/components/Modal/utils/utils.d.ts +1 -1
- package/dist/lib/components/Modal/utils/utils.js +6 -2
- package/dist/lib/components/MultipleSelect/MultipleSelect.css +1 -0
- package/dist/lib/components/MultipleSelect/MultipleSelect.d.ts +63 -0
- package/dist/lib/components/MultipleSelect/MultipleSelect.js +244 -0
- package/dist/lib/components/Tooltip/Tooltip.d.ts +6 -0
- package/dist/lib/components/Tooltip/Tooltip.js +19 -6
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.js +14 -0
- package/package.json +2 -2
|
@@ -4,13 +4,20 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports["default"] = exports.ChipThemes = exports.ChipColors = exports.ChipArrow = void 0;
|
|
7
|
+
exports["default"] = exports.ChipType = exports.ChipThemes = exports.ChipColors = exports.ChipArrow = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _uiHelpers = require("@megafon/ui-helpers");
|
|
11
11
|
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); }
|
|
12
12
|
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; }
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
|
+
var TurnOn = function TurnOn(props) {
|
|
15
|
+
return /*#__PURE__*/React.createElement("svg", (0, _extends2["default"])({
|
|
16
|
+
viewBox: "0 0 20 20"
|
|
17
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
18
|
+
d: "M12.352 12a2 2 0 110 4 2 2 0 010-4zm-2.828 1.25c-.06.24-.094.49-.094.75s.034.51.094.75H2.73A.74.74 0 012 14a.74.74 0 01.729-.75h6.795zm7.747 0A.74.74 0 0118 14a.74.74 0 01-.729.75h-2.108c.06-.24.096-.49.096-.75s-.036-.51-.096-.75h2.108zM7.46 4a2 2 0 110 4 2 2 0 010-4zM4.667 5.25c-.06.24-.095.49-.095.75s.035.51.095.75H2.729A.74.74 0 012 6a.74.74 0 01.729-.75h1.938zm12.604 0A.74.74 0 0118 6a.74.74 0 01-.729.75h-6.965c.06-.24.094-.49.094-.75s-.034-.51-.094-.75h6.966z"
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
14
21
|
var ArrowDown = function ArrowDown(props) {
|
|
15
22
|
return /*#__PURE__*/React.createElement("svg", (0, _extends2["default"])({
|
|
16
23
|
viewBox: "0 0 20 20"
|
|
@@ -33,6 +40,11 @@ var ChipThemes = exports.ChipThemes = {
|
|
|
33
40
|
WHITE: 'white',
|
|
34
41
|
GRAY: 'gray'
|
|
35
42
|
};
|
|
43
|
+
var ChipType = exports.ChipType = {
|
|
44
|
+
DEFAULT: 'default',
|
|
45
|
+
FILTER: 'filter'
|
|
46
|
+
};
|
|
47
|
+
// DEPRECATED -------------------------------------------------------
|
|
36
48
|
var ChipArrow = exports.ChipArrow = {
|
|
37
49
|
UP: 'up',
|
|
38
50
|
DOWN: 'down'
|
|
@@ -41,17 +53,22 @@ var cn = (0, _uiHelpers.cnCreate)('mfui-9-chip');
|
|
|
41
53
|
var Chip = function Chip(_ref) {
|
|
42
54
|
var id = _ref.id,
|
|
43
55
|
title = _ref.title,
|
|
56
|
+
_ref$type = _ref.type,
|
|
57
|
+
type = _ref$type === void 0 ? 'default' : _ref$type,
|
|
44
58
|
_ref$color = _ref.color,
|
|
45
59
|
color = _ref$color === void 0 ? 'default' : _ref$color,
|
|
46
60
|
_ref$theme = _ref.theme,
|
|
47
61
|
theme = _ref$theme === void 0 ? 'white' : _ref$theme,
|
|
48
62
|
_ref$checked = _ref.checked,
|
|
49
63
|
checked = _ref$checked === void 0 ? false : _ref$checked,
|
|
64
|
+
_ref$opened = _ref.opened,
|
|
65
|
+
opened = _ref$opened === void 0 ? false : _ref$opened,
|
|
50
66
|
_ref$disabled = _ref.disabled,
|
|
51
67
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
52
68
|
icon = _ref.icon,
|
|
53
69
|
counterValue = _ref.counterValue,
|
|
54
70
|
arrow = _ref.arrow,
|
|
71
|
+
showArrow = _ref.showArrow,
|
|
55
72
|
onClick = _ref.onClick,
|
|
56
73
|
children = _ref.children,
|
|
57
74
|
className = _ref.className,
|
|
@@ -60,6 +77,9 @@ var Chip = function Chip(_ref) {
|
|
|
60
77
|
dataAttrs = _ref.dataAttrs,
|
|
61
78
|
rootRef = _ref.rootRef;
|
|
62
79
|
var checkedClass = checked ? classes.checked : undefined;
|
|
80
|
+
var filterIcon = type === 'filter' ? /*#__PURE__*/React.createElement(TurnOn, null) : undefined;
|
|
81
|
+
var finalIcon = icon || filterIcon;
|
|
82
|
+
var content = children || title;
|
|
63
83
|
var handleClick = React.useCallback(function (e) {
|
|
64
84
|
onClick === null || onClick === void 0 ? void 0 : onClick(e, id);
|
|
65
85
|
}, [onClick, id]);
|
|
@@ -67,10 +87,14 @@ var Chip = function Chip(_ref) {
|
|
|
67
87
|
type: "button",
|
|
68
88
|
className: cn({
|
|
69
89
|
color: color,
|
|
90
|
+
type: type,
|
|
70
91
|
theme: theme,
|
|
71
92
|
checked: checked,
|
|
93
|
+
opened: opened,
|
|
72
94
|
disabled: disabled,
|
|
73
|
-
'with-
|
|
95
|
+
'with-arrow': !!arrow || showArrow,
|
|
96
|
+
'with-counter': !!counterValue,
|
|
97
|
+
'with-icon': !!finalIcon
|
|
74
98
|
}, [className, classes.root, checkedClass])
|
|
75
99
|
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
76
100
|
disabled: disabled,
|
|
@@ -78,14 +102,16 @@ var Chip = function Chip(_ref) {
|
|
|
78
102
|
ref: rootRef
|
|
79
103
|
}, checked && {
|
|
80
104
|
tabIndex: -1
|
|
81
|
-
}), !!
|
|
105
|
+
}), !!finalIcon && /*#__PURE__*/React.createElement("span", (0, _extends2["default"])({
|
|
82
106
|
className: cn('icon', [classes.icon])
|
|
83
|
-
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.icon)),
|
|
107
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.icon)), finalIcon), !!content && /*#__PURE__*/React.createElement("span", (0, _extends2["default"])({
|
|
84
108
|
className: cn('inner', [classes.inner])
|
|
85
|
-
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.inner)),
|
|
109
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.inner)), content), !!counterValue && /*#__PURE__*/React.createElement("span", (0, _extends2["default"])({
|
|
86
110
|
className: cn('counter', [classes.counter])
|
|
87
111
|
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.counter)), counterValue), !!arrow && /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
|
|
88
112
|
className: cn('icon-arrow', [classes.arrow])
|
|
89
|
-
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrow)), arrow === 'up' ? /*#__PURE__*/React.createElement(ArrowUp, null) : /*#__PURE__*/React.createElement(ArrowDown, null)))
|
|
113
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrow)), arrow === 'up' ? /*#__PURE__*/React.createElement(ArrowUp, null) : /*#__PURE__*/React.createElement(ArrowDown, null)), showArrow && /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
|
|
114
|
+
className: cn('icon-arrow', [classes.arrow])
|
|
115
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrow)), /*#__PURE__*/React.createElement(ArrowDown, null)));
|
|
90
116
|
};
|
|
91
117
|
var _default = exports["default"] = Chip;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-chip-badge__badge{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;z-index:1;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:end;margin-bottom:-4px;margin-left:auto}.mfui-9-chip-badge__chip{width:100%}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { IChipProps } from './Chip';
|
|
3
|
+
import './ChipBadge.scss';
|
|
4
|
+
export interface IChipBadgeProps extends IChipProps {
|
|
5
|
+
badge?: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
declare const ChipBadge: React.FC<IChipBadgeProps>;
|
|
8
|
+
export default ChipBadge;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
require("core-js/modules/es.symbol.js");
|
|
10
|
+
require("core-js/modules/es.array.index-of.js");
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _uiHelpers = require("@megafon/ui-helpers");
|
|
13
|
+
var _Chip = _interopRequireDefault(require("./Chip"));
|
|
14
|
+
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); }
|
|
15
|
+
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; }
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
17
|
+
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
18
|
+
var t = {};
|
|
19
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
20
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
21
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
22
|
+
}
|
|
23
|
+
return t;
|
|
24
|
+
};
|
|
25
|
+
var cn = (0, _uiHelpers.cnCreate)('mfui-9-chip-badge');
|
|
26
|
+
var ChipBadge = function ChipBadge(_a) {
|
|
27
|
+
var badge = _a.badge,
|
|
28
|
+
className = _a.className,
|
|
29
|
+
chipProps = __rest(_a, ["badge", "className"]);
|
|
30
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
31
|
+
className: cn()
|
|
32
|
+
}, !!badge && /*#__PURE__*/React.createElement("div", {
|
|
33
|
+
className: cn('badge')
|
|
34
|
+
}, badge), /*#__PURE__*/React.createElement(_Chip["default"], (0, _extends2["default"])({
|
|
35
|
+
className: cn('chip', [className])
|
|
36
|
+
}, chipProps)));
|
|
37
|
+
};
|
|
38
|
+
var _default = exports["default"] = ChipBadge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}.mfui-9-chips{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:12px;width:100%}@media screen and (max-width:767px){.mfui-9-chips{gap:8px}}.mfui-9-chips_hidden{display:grid;grid-template-columns:repeat(auto-fit,minMax(0,-webkit-min-content));grid-template-columns:repeat(auto-fit,minMax(0,min-content))}.mfui-9-chips_align_center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-chips{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:12px;-webkit-box-align:end;-ms-flex-align:end;align-items:end;width:100%}@media screen and (max-width:767px){.mfui-9-chips{gap:8px}}.mfui-9-chips_hidden{display:grid;grid-template-columns:repeat(auto-fit,minMax(0,-webkit-min-content));grid-template-columns:repeat(auto-fit,minMax(0,min-content))}.mfui-9-chips_align_center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DropdownItemsPaddingType } from '../../Dropdown/Dropdown';
|
|
3
|
-
import {
|
|
3
|
+
import { IChipBadgeProps } from './ChipBadge';
|
|
4
4
|
import './Chips.scss';
|
|
5
5
|
export interface IChipsProps {
|
|
6
6
|
/** Массив элементов */
|
|
7
|
-
items:
|
|
7
|
+
items: IChipBadgeProps[];
|
|
8
8
|
/** Значение (идентификатор активного элемента). Начальное значение в неконтролируемом состоянии */
|
|
9
|
-
value?:
|
|
9
|
+
value?: IChipBadgeProps['id'];
|
|
10
10
|
/** Цвет активного элемента */
|
|
11
|
-
color?:
|
|
11
|
+
color?: IChipBadgeProps['color'];
|
|
12
12
|
/** Цвет неактивных элементов */
|
|
13
|
-
theme?:
|
|
13
|
+
theme?: IChipBadgeProps['theme'];
|
|
14
14
|
/** Горизонтальное выравнивание */
|
|
15
15
|
align?: 'left' | 'center';
|
|
16
16
|
/** Переводит компонент в контролируемое состояние */
|
|
@@ -32,7 +32,7 @@ export interface IChipsProps {
|
|
|
32
32
|
/** Отступы элементов списка выпадающего списка */
|
|
33
33
|
dropdownPaddings?: DropdownItemsPaddingType;
|
|
34
34
|
/** Обработчик изменения значения */
|
|
35
|
-
onChange?: (id:
|
|
35
|
+
onChange?: (id: IChipBadgeProps['id'], e?: React.SyntheticEvent<EventTarget>) => void;
|
|
36
36
|
/** Дополнительный класс корневого элемента */
|
|
37
37
|
className?: string;
|
|
38
38
|
/** Дополнительные классы для внутренних элементов */
|
|
@@ -15,7 +15,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
15
15
|
var _uiHelpers = require("@megafon/ui-helpers");
|
|
16
16
|
var _lodash = _interopRequireDefault(require("lodash.throttle"));
|
|
17
17
|
var _throttleTime = _interopRequireDefault(require("../../../constants/throttleTime"));
|
|
18
|
-
var
|
|
18
|
+
var _ChipBadge = _interopRequireDefault(require("./ChipBadge"));
|
|
19
19
|
var _ChipsDropdown = _interopRequireDefault(require("./components/ChipsDropdown/ChipsDropdown"));
|
|
20
20
|
var _ChipsScrollPanel = _interopRequireDefault(require("./components/ChipsScrollPanel/ChipsScrollPanel"));
|
|
21
21
|
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); }
|
|
@@ -109,7 +109,7 @@ var Chips = function Chips(_ref) {
|
|
|
109
109
|
var id = _a.id,
|
|
110
110
|
children = _a.children,
|
|
111
111
|
rest = __rest(_a, ["id", "children"]);
|
|
112
|
-
return /*#__PURE__*/React.createElement(
|
|
112
|
+
return /*#__PURE__*/React.createElement(_ChipBadge["default"], (0, _extends2["default"])({
|
|
113
113
|
key: id,
|
|
114
114
|
id: id,
|
|
115
115
|
checked: id === selectedId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}.mfui-9-chips-dropdown{position:relative}.mfui-9-chips-dropdown__button{width:100%}.mfui-9-chips-
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-chips-dropdown{position:relative}.mfui-9-chips-dropdown__button{width:100%}.mfui-9-chips-dropdown__dropdown{max-width:256px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.mfui-9-chips-dropdown__list-item{display:-webkit-box;display:-ms-flexbox;display:flex}.mfui-9-chips-dropdown__icon{display:block;margin-right:16px;max-height:24px;min-width:24px;width:24px}.mfui-9-chips-dropdown__icon svg{display:block;height:100%;width:100%;fill:var(--content)}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DropdownItemsPaddingType } from '../../../../Dropdown/Dropdown';
|
|
3
|
-
import {
|
|
3
|
+
import { IChipBadgeProps } from '../../ChipBadge';
|
|
4
4
|
import './ChipsDropdown.scss';
|
|
5
5
|
export interface IChipsDropdownProps {
|
|
6
|
-
items:
|
|
7
|
-
color:
|
|
8
|
-
theme:
|
|
6
|
+
items: IChipBadgeProps[];
|
|
7
|
+
color: IChipBadgeProps['color'];
|
|
8
|
+
theme: IChipBadgeProps['theme'];
|
|
9
9
|
moreTitle: string;
|
|
10
10
|
short: boolean;
|
|
11
|
-
value?:
|
|
11
|
+
value?: IChipBadgeProps['id'];
|
|
12
12
|
paddings?: DropdownItemsPaddingType;
|
|
13
13
|
classes?: {
|
|
14
14
|
root?: string;
|
|
@@ -22,7 +22,7 @@ export interface IChipsDropdownProps {
|
|
|
22
22
|
list?: Record<string, string>;
|
|
23
23
|
item?: Record<string, string>;
|
|
24
24
|
};
|
|
25
|
-
onClick: (e: React.SyntheticEvent<EventTarget>, id:
|
|
25
|
+
onClick: (e: React.SyntheticEvent<EventTarget>, id: IChipBadgeProps['id']) => void;
|
|
26
26
|
}
|
|
27
27
|
declare const ChipsDropdown: React.FC<IChipsDropdownProps>;
|
|
28
28
|
export default ChipsDropdown;
|
|
@@ -13,7 +13,7 @@ require("core-js/modules/es.object.to-string.js");
|
|
|
13
13
|
var React = _interopRequireWildcard(require("react"));
|
|
14
14
|
var _uiHelpers = require("@megafon/ui-helpers");
|
|
15
15
|
var _Dropdown = _interopRequireDefault(require("../../../../Dropdown/Dropdown"));
|
|
16
|
-
var
|
|
16
|
+
var _ChipBadge = _interopRequireDefault(require("../../ChipBadge"));
|
|
17
17
|
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); }
|
|
18
18
|
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; }
|
|
19
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
@@ -31,7 +31,6 @@ var ChipsDropdown = function ChipsDropdown(_ref) {
|
|
|
31
31
|
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
|
32
32
|
dataAttrs = _ref.dataAttrs,
|
|
33
33
|
onClick = _ref.onClick;
|
|
34
|
-
var _a;
|
|
35
34
|
var _React$useState = React.useState(false),
|
|
36
35
|
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
37
36
|
isDropdownOpen = _React$useState2[0],
|
|
@@ -74,17 +73,14 @@ var ChipsDropdown = function ChipsDropdown(_ref) {
|
|
|
74
73
|
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
|
|
75
74
|
className: cn([classes.root]),
|
|
76
75
|
ref: dropdownRef
|
|
77
|
-
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement(
|
|
76
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement(_ChipBadge["default"], (0, _extends2["default"])({}, currentItem, {
|
|
78
77
|
className: cn('button', [currentItem.className]),
|
|
79
|
-
classes:
|
|
80
|
-
arrow: cn('arrow', {
|
|
81
|
-
open: isDropdownOpen
|
|
82
|
-
}, [(_a = currentItem.classes) === null || _a === void 0 ? void 0 : _a.arrow])
|
|
83
|
-
}),
|
|
78
|
+
classes: currentItem.classes,
|
|
84
79
|
color: color,
|
|
85
80
|
theme: theme,
|
|
81
|
+
opened: isDropdownOpen,
|
|
86
82
|
checked: !!currentItem.id,
|
|
87
|
-
|
|
83
|
+
showArrow: true,
|
|
88
84
|
onClick: handleOpenItemList
|
|
89
85
|
})), /*#__PURE__*/React.createElement(_Dropdown["default"], {
|
|
90
86
|
items: dropdownItems,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}.mfui-9-chips-scroll-panel{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;overflow-x:auto;overflow-y:hidden;position:relative;-ms-overflow-style:none;scrollbar-width:none}.mfui-9-chips-scroll-panel::-webkit-scrollbar{display:none}.mfui-9-chips-scroll-panel__inner{display:-webkit-box;display:-ms-flexbox;display:flex;gap:12px;height:100%}@media screen and (max-width:767px){.mfui-9-chips-scroll-panel__inner{gap:8px}}
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-chips-scroll-panel{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;overflow-x:auto;overflow-y:hidden;position:relative;-ms-overflow-style:none;scrollbar-width:none}.mfui-9-chips-scroll-panel::-webkit-scrollbar{display:none}.mfui-9-chips-scroll-panel__inner{display:-webkit-box;display:-ms-flexbox;display:flex;gap:12px;-webkit-box-align:end;-ms-flex-align:end;align-items:end;height:100%}@media screen and (max-width:767px){.mfui-9-chips-scroll-panel__inner{gap:8px}}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { IChipBadgeProps } from '../../ChipBadge';
|
|
3
3
|
import './ChipsScrollPanel.scss';
|
|
4
4
|
export interface IChipsScrollPanelProps {
|
|
5
5
|
classes?: {
|
|
@@ -10,11 +10,11 @@ export interface IChipsScrollPanelProps {
|
|
|
10
10
|
root?: Record<string, string>;
|
|
11
11
|
inner?: Record<string, string>;
|
|
12
12
|
};
|
|
13
|
-
value?:
|
|
14
|
-
items:
|
|
15
|
-
color:
|
|
16
|
-
theme:
|
|
17
|
-
onClick: (e: React.SyntheticEvent<EventTarget>, id?:
|
|
13
|
+
value?: IChipBadgeProps['id'];
|
|
14
|
+
items: IChipBadgeProps[];
|
|
15
|
+
color: IChipBadgeProps['color'];
|
|
16
|
+
theme: IChipBadgeProps['theme'];
|
|
17
|
+
onClick: (e: React.SyntheticEvent<EventTarget>, id?: IChipBadgeProps['id']) => void;
|
|
18
18
|
}
|
|
19
19
|
declare const ChipsScrollPanel: React.FC<IChipsScrollPanelProps>;
|
|
20
20
|
export default ChipsScrollPanel;
|
|
@@ -12,7 +12,7 @@ require("core-js/modules/es.array.index-of.js");
|
|
|
12
12
|
require("core-js/modules/es.array.map.js");
|
|
13
13
|
var React = _interopRequireWildcard(require("react"));
|
|
14
14
|
var _uiHelpers = require("@megafon/ui-helpers");
|
|
15
|
-
var
|
|
15
|
+
var _ChipBadge = _interopRequireDefault(require("../../ChipBadge"));
|
|
16
16
|
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
17
|
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
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
@@ -84,7 +84,7 @@ var ChipsScrollPanel = function ChipsScrollPanel(_ref) {
|
|
|
84
84
|
return /*#__PURE__*/React.createElement("div", {
|
|
85
85
|
key: id,
|
|
86
86
|
className: cn('slide')
|
|
87
|
-
}, /*#__PURE__*/React.createElement(
|
|
87
|
+
}, /*#__PURE__*/React.createElement(_ChipBadge["default"], (0, _extends2["default"])({}, rest, {
|
|
88
88
|
id: id,
|
|
89
89
|
checked: checked,
|
|
90
90
|
color: color,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}.mfui-9-
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-modal__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;left:0;position:fixed;top:0;z-index:1000;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-animation:show-popup-overlay .3s ease-out forwards;animation:show-popup-overlay .3s ease-out forwards;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;justify-content:flex-start;opacity:0;padding:72px 0;width:100%}.mfui-9-modal__modal-content{margin:auto;position:relative}.mfui-9-modal__modal-content:focus-visible{outline:none}.mfui-9-modal_full-view .mfui-9-modal__overlay{display:block;padding:32px 0 0;top:32px}.mfui-9-modal_full-view .mfui-9-modal__modal-content{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:100%;width:100%}.mfui-9-modal_bottom-view .mfui-9-modal__overlay{bottom:0;display:block;height:auto;overflow:hidden;padding-bottom:0}.mfui-9-modal_bottom-view .mfui-9-modal__modal-content{height:100%;margin:0;outline:none;overflow:hidden}.mfui-9-modal_native-scroll .mfui-9-modal__overlay{overflow-x:hidden;overflow-y:scroll}@media screen and (hover:hover){.mfui-9-modal_native-scroll .mfui-9-modal__overlay{width:calc(100% + 15px)}}.mfui-9-modal_transition-end .mfui-9-modal__overlay{-webkit-animation:hide-popup-overlay .2s ease-in;animation:hide-popup-overlay .2s ease-in}@-webkit-keyframes show-popup-overlay{0%{opacity:0}to{opacity:1}}@keyframes show-popup-overlay{0%{opacity:0}to{opacity:1}}@-webkit-keyframes hide-popup-overlay{0%{opacity:1}to{opacity:0}}@keyframes hide-popup-overlay{0%{opacity:1}to{opacity:0}}
|
|
@@ -38,7 +38,6 @@ var MODAL_TRANSITIONS_STEPS_ENUM;
|
|
|
38
38
|
MODAL_TRANSITIONS_STEPS_ENUM["MOVE_END_STEP"] = "move-end-step";
|
|
39
39
|
MODAL_TRANSITIONS_STEPS_ENUM["END_STEP"] = "end-step";
|
|
40
40
|
})(MODAL_TRANSITIONS_STEPS_ENUM || (exports.MODAL_TRANSITIONS_STEPS_ENUM = MODAL_TRANSITIONS_STEPS_ENUM = {}));
|
|
41
|
-
var bodyCn = (0, _uiHelpers.cnCreate)('mfui-9-modal-open-body');
|
|
42
41
|
var cn = (0, _uiHelpers.cnCreate)('mfui-9-modal');
|
|
43
42
|
var Modal = function Modal(_ref) {
|
|
44
43
|
var className = _ref.className,
|
|
@@ -173,9 +172,13 @@ var Modal = function Modal(_ref) {
|
|
|
173
172
|
handleSetScrollContentMaxHeight();
|
|
174
173
|
}, [isEnabledNativeScroll, handleSetScrollContentMaxHeight]);
|
|
175
174
|
var handleAfterOpen = function handleAfterOpen() {
|
|
175
|
+
(0, _utils.changeBodyStyles)(true);
|
|
176
176
|
handleSetStyles();
|
|
177
177
|
onAfterModalOpen === null || onAfterModalOpen === void 0 ? void 0 : onAfterModalOpen();
|
|
178
178
|
};
|
|
179
|
+
var handleAfterClose = function handleAfterClose() {
|
|
180
|
+
(0, _utils.changeBodyStyles)(false);
|
|
181
|
+
};
|
|
179
182
|
var handlePopupClose = function handlePopupClose() {
|
|
180
183
|
setTransitionStep(MODAL_TRANSITIONS_STEPS_ENUM.END_STEP);
|
|
181
184
|
};
|
|
@@ -192,7 +195,6 @@ var Modal = function Modal(_ref) {
|
|
|
192
195
|
};
|
|
193
196
|
React.useEffect(function () {
|
|
194
197
|
setIsPopupOpened(isOpened);
|
|
195
|
-
(0, _utils.changeBodyPadding)(isOpened);
|
|
196
198
|
if (!isOpened) {
|
|
197
199
|
setContainerWrapHeight(undefined);
|
|
198
200
|
}
|
|
@@ -252,14 +254,19 @@ var Modal = function Modal(_ref) {
|
|
|
252
254
|
}, [isEnabledNativeScroll, isFooterPropsDiff, isRecalculateHeight, isHeaderPropsDiff, handleSetScrollContentMaxHeight]);
|
|
253
255
|
React.useEffect(function () {
|
|
254
256
|
return function () {
|
|
255
|
-
setIsPopupOpened(false);
|
|
256
|
-
document.body.style.paddingRight = '';
|
|
257
257
|
if (!containerInnerRef.current || !resizeObserver.current) {
|
|
258
258
|
return;
|
|
259
259
|
}
|
|
260
260
|
resizeObserver.current.unobserve(containerInnerRef.current);
|
|
261
261
|
};
|
|
262
262
|
}, []);
|
|
263
|
+
React.useEffect(function () {
|
|
264
|
+
return function () {
|
|
265
|
+
if (isOpened) {
|
|
266
|
+
(0, _utils.changeBodyStyles)(false);
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
}, [isOpened]);
|
|
263
270
|
var contextProps = {
|
|
264
271
|
classes: classes,
|
|
265
272
|
dataAttrs: dataAttrs,
|
|
@@ -314,7 +321,7 @@ var Modal = function Modal(_ref) {
|
|
|
314
321
|
'native-scroll': isEnabledNativeScroll
|
|
315
322
|
}, [className]),
|
|
316
323
|
overlayClassName: cn('overlay', classes === null || classes === void 0 ? void 0 : classes.overlay),
|
|
317
|
-
bodyOpenClassName:
|
|
324
|
+
bodyOpenClassName: classes === null || classes === void 0 ? void 0 : classes.bodyOpen,
|
|
318
325
|
isOpen: isPopupOpened,
|
|
319
326
|
ariaHideApp: hideAriaApp,
|
|
320
327
|
contentLabel: contentLabel,
|
|
@@ -322,7 +329,8 @@ var Modal = function Modal(_ref) {
|
|
|
322
329
|
contentRef: getModalContentRef,
|
|
323
330
|
overlayRef: handleGetModalOverlayRef,
|
|
324
331
|
onRequestClose: handlePopupClose,
|
|
325
|
-
onAfterOpen: handleAfterOpen
|
|
332
|
+
onAfterOpen: handleAfterOpen,
|
|
333
|
+
onAfterClose: handleAfterClose
|
|
326
334
|
}, renderContent());
|
|
327
335
|
};
|
|
328
336
|
var _default = exports["default"] = Modal;
|
|
@@ -13,6 +13,6 @@ type CorrectMaxHeightArgsType = {
|
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
export declare const getCorrectMaxHeight: ({ refs, props }: CorrectMaxHeightArgsType) => number;
|
|
16
|
-
export declare const
|
|
16
|
+
export declare const changeBodyStyles: (isOpened: boolean) => void;
|
|
17
17
|
declare const _default: null;
|
|
18
18
|
export default _default;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getCorrectMaxHeight = exports["default"] = exports.
|
|
6
|
+
exports.getCorrectMaxHeight = exports["default"] = exports.changeBodyStyles = void 0;
|
|
7
7
|
require("core-js/modules/es.parse-int.js");
|
|
8
8
|
var _uiHelpers = require("@megafon/ui-helpers");
|
|
9
9
|
var getAdditionalSize = function getAdditionalSize(refs) {
|
|
@@ -54,15 +54,19 @@ var getCorrectMaxHeight = exports.getCorrectMaxHeight = function getCorrectMaxHe
|
|
|
54
54
|
var correctMaxHeight = isStickyFooter ? maxHeightResize - popupFooterHeight : maxHeightResize;
|
|
55
55
|
return correctMaxHeight;
|
|
56
56
|
};
|
|
57
|
-
var
|
|
57
|
+
var changeBodyStyles = exports.changeBodyStyles = function changeBodyStyles(isOpened) {
|
|
58
58
|
var windowWidth = window.innerWidth;
|
|
59
59
|
var documentClientWidth = document.documentElement.clientWidth;
|
|
60
60
|
var scrollBarWidth = windowWidth - documentClientWidth;
|
|
61
61
|
var bodyEl = document.body;
|
|
62
62
|
if (!isOpened) {
|
|
63
63
|
bodyEl.style.paddingRight = '';
|
|
64
|
+
bodyEl.style.height = '';
|
|
65
|
+
bodyEl.style.overflow = '';
|
|
64
66
|
return;
|
|
65
67
|
}
|
|
68
|
+
bodyEl.style.height = '100%';
|
|
69
|
+
bodyEl.style.overflow = 'hidden';
|
|
66
70
|
if (scrollBarWidth === 0) {
|
|
67
71
|
return;
|
|
68
72
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-multiple-select{-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);font-family:inherit;font-size:15px;line-height:24px;position:relative;width:100%}.mfui-9-multiple-select__control{background-color:var(--base);border:1px solid var(--spbSky2);border-radius:16px;display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px;height:auto;min-height:60px;outline:none;padding:13px 15px;position:relative;-webkit-transition:border-color .3s;transition:border-color .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.mfui-9-multiple-select__control:hover{border-color:var(--content)}.mfui-9-multiple-select__input-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:8px;overflow:hidden;width:100%}.mfui-9-multiple-select__arrow-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;outline:none;padding:0;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;border-radius:8px;justify-content:center;width:32px}.mfui-9-multiple-select__arrow-button:disabled{color:inherit;cursor:auto}.mfui-9-multiple-select__arrow-button:focus-visible{-webkit-animation:focus-outline-shrink .3s linear forwards;animation:focus-outline-shrink .3s linear forwards;outline-offset:2px}@-webkit-keyframes focus-outline-shrink{0%{outline:0 solid var(--137C)}to{outline:4px solid var(--137C)}}.mfui-9-multiple-select__arrow-button:focus{outline:none}.mfui-9-multiple-select__arrow-icon{height:auto;width:100%;fill:var(--spbSky2)}.mfui-9-multiple-select__control_active .mfui-9-multiple-select__arrow-icon{-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-property:color,-webkit-transform;transition-property:color,-webkit-transform;transition-property:transform,color;transition-property:transform,color,-webkit-transform;fill:var(--content)}.mfui-9-multiple-select__input{display:block;position:relative;z-index:1;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;caret-color:var(--brandGreen);color:var(--content);flex-shrink:1;font-family:inherit;font-size:100%;line-height:24px;opacity:1;outline:none;overflow:auto;padding:0;resize:none;width:100px}.mfui-9-multiple-select__input::-webkit-input-placeholder{color:var(--spbSky3)}.mfui-9-multiple-select__input::-moz-placeholder{color:var(--spbSky3)}.mfui-9-multiple-select__input:-ms-input-placeholder{color:var(--spbSky3)}.mfui-9-multiple-select__input::-ms-input-placeholder{color:var(--spbSky3)}.mfui-9-multiple-select__input::placeholder{color:var(--spbSky3)}.mfui-9-multiple-select__tag{display:-webkit-box;display:-ms-flexbox;display:flex;gap:2px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--spbSky0);border:none;border-radius:8px;height:32px;max-width:100%;padding:4px 6px 4px 12px}.mfui-9-multiple-select__tag-title{display:block;font-size:15px;font-weight:400;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mfui-9-multiple-select__tag-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;outline:none;padding:0;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:8px;height:20px;min-width:20px;width:20px}.mfui-9-multiple-select__tag-button:disabled{color:inherit;cursor:auto}.mfui-9-multiple-select__tag-button:focus-visible{-webkit-animation:focus-outline-shrink .3s linear forwards;animation:focus-outline-shrink .3s linear forwards;outline-offset:2px}@keyframes focus-outline-shrink{0%{outline:0 solid var(--137C)}to{outline:4px solid var(--137C)}}.mfui-9-multiple-select__tag-button:focus{outline:none}.mfui-9-multiple-select__tag-button-icon{-webkit-transition:fill .3s;transition:fill .3s;fill:var(--spbSky3)}.mfui-9-multiple-select__tag-button:hover .mfui-9-multiple-select__tag-button-icon{fill:var(--content)}.mfui-9-multiple-select__notice-text{color:var(--spbSky3);font-size:12px;font-weight:400;line-height:18px;margin-top:8px}.mfui-9-multiple-select_open .mfui-9-multiple-select__control{border-color:var(--content)}.mfui-9-multiple-select_open .mfui-9-multiple-select__arrow-icon{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.mfui-9-multiple-select_disabled{pointer-events:none}.mfui-9-multiple-select_disabled .mfui-9-multiple-select__control{background-color:var(--spbSky0)}.mfui-9-multiple-select_disabled .mfui-9-multiple-select__input:not([placeholder]){width:0}.mfui-9-multiple-select_disabled .mfui-9-multiple-select__tag{background-color:var(--spbSky1)}.mfui-9-multiple-select_disabled .mfui-9-multiple-select__arrow-icon,.mfui-9-multiple-select_disabled .mfui-9-multiple-select__tag-button-icon{fill:var(--spbSky2)}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import './MultipleSelect.scss';
|
|
3
|
+
export type ItemValueType = number | string | undefined;
|
|
4
|
+
export type ItemType = {
|
|
5
|
+
/** Заголовок элемента */
|
|
6
|
+
title: string;
|
|
7
|
+
/** Уникальный идентификатор элемента */
|
|
8
|
+
value: ItemValueType;
|
|
9
|
+
};
|
|
10
|
+
export interface IMultipleSelectProps {
|
|
11
|
+
/** Дополнительный класс корневого элемента */
|
|
12
|
+
className?: string;
|
|
13
|
+
/** Элементы выпадающего списка */
|
|
14
|
+
items: ItemType[];
|
|
15
|
+
/** Список выбранных элементов */
|
|
16
|
+
selectedItems?: ItemType[];
|
|
17
|
+
/** Ограничение количества выбранных элементов */
|
|
18
|
+
selectLimit?: number;
|
|
19
|
+
/** Текст внутри поля по умолчанию */
|
|
20
|
+
placeholder?: string;
|
|
21
|
+
/** Максимальное вводимое количество символов */
|
|
22
|
+
maxLength?: number;
|
|
23
|
+
/** Текст при отсутствии результатов поиска */
|
|
24
|
+
notFoundText?: string;
|
|
25
|
+
/** Дополнительный текст под полем */
|
|
26
|
+
noticeText?: string;
|
|
27
|
+
/** Отключенное состояние */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Пользовательская функция поиска */
|
|
30
|
+
customSearchFilter?: (item: ItemType, searchQuery: string) => boolean;
|
|
31
|
+
/** Обработчик выбора элемента селекта */
|
|
32
|
+
onSelect?: (items: ItemType[]) => void;
|
|
33
|
+
/** Обработчик выхода из фокуса */
|
|
34
|
+
onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
35
|
+
/** Обработчик входа в фокус */
|
|
36
|
+
onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
37
|
+
/** Обработчик изменения поля при поиске */
|
|
38
|
+
onSearch?: (query: string) => void;
|
|
39
|
+
/** Использование функции debounce для onSearch */
|
|
40
|
+
searchDelay?: number;
|
|
41
|
+
/** Переводит компонент в контролируемое состояние */
|
|
42
|
+
isControlled?: boolean;
|
|
43
|
+
/** Дополнительные классы для внутренних элементов */
|
|
44
|
+
classes?: {
|
|
45
|
+
root?: string;
|
|
46
|
+
input?: string;
|
|
47
|
+
list?: string;
|
|
48
|
+
listItem?: string;
|
|
49
|
+
tag?: string;
|
|
50
|
+
tagButton?: string;
|
|
51
|
+
};
|
|
52
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
|
53
|
+
dataAttrs?: {
|
|
54
|
+
root?: Record<string, string>;
|
|
55
|
+
input?: Record<string, string>;
|
|
56
|
+
list?: Record<string, string>;
|
|
57
|
+
listItem?: Record<string, string>;
|
|
58
|
+
tag?: Record<string, string>;
|
|
59
|
+
tagButton?: Record<string, string>;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
declare const MultipleSelect: React.FC<IMultipleSelectProps>;
|
|
63
|
+
export default MultipleSelect;
|