@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
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}.mfui-9-promo-badge{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:8px;color:var(--stcWhite);padding:
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-promo-badge{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:8px;color:var(--stcWhite);padding:3px 10px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.mfui-9-promo-badge_color_berry{background-color:var(--berry)}.mfui-9-promo-badge_color_brand-purple-20{background-color:var(--brandPurple20);color:var(--brandPurple)}.mfui-9-promo-badge_color_brand-purple{background-color:var(--brandPurple)}.mfui-9-promo-badge_color_night{background-color:var(--night)}.mfui-9-promo-badge_color_sky{background-color:var(--sky)}.mfui-9-promo-badge_color_flamingo{background-color:var(--flamingo)}.mfui-9-promo-badge_color_gradient-purple{background:var(--gradientPurple1);color:var(--stcWhite)}.mfui-9-promo-badge_color_gray{background:var(--spbSky0);color:var(--content)}.mfui-9-promo-badge_color_white{background:var(--base);color:var(--content)}.mfui-9-promo-badge_icon{padding:3px 8px}.mfui-9-promo-badge_size_small{border-radius:8px;height:20px;padding:0 8px}.mfui-9-promo-badge__text{font-family:inherit;font-size:12px;font-weight:500;line-height:18px}.mfui-9-promo-badge__text_size_small{font-size:10px;line-height:12px}.mfui-9-promo-badge__icon{display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:4px}.mfui-9-promo-badge__icon_size_small{margin-left:-4px;margin-right:2px}
|
|
@@ -9,6 +9,7 @@ export declare const PromoBadgeColors: {
|
|
|
9
9
|
readonly FLAMINGO: "flamingo";
|
|
10
10
|
readonly GRADIENT_PURPLE: "gradient-purple";
|
|
11
11
|
readonly GRAY: "gray";
|
|
12
|
+
readonly WHITE: "white";
|
|
12
13
|
};
|
|
13
14
|
type PromoBadgeColorsType = (typeof PromoBadgeColors)[keyof typeof PromoBadgeColors];
|
|
14
15
|
export declare const PromoBadgeSize: {
|
|
@@ -16,11 +17,17 @@ export declare const PromoBadgeSize: {
|
|
|
16
17
|
readonly MEDIUM: "medium";
|
|
17
18
|
};
|
|
18
19
|
type PromoBadgeSizeType = (typeof PromoBadgeSize)[keyof typeof PromoBadgeSize];
|
|
20
|
+
export declare const PromoBadgeIcon: {
|
|
21
|
+
readonly PERSONAL: "personal";
|
|
22
|
+
};
|
|
23
|
+
type PromoBadgeIconType = (typeof PromoBadgeIcon)[keyof typeof PromoBadgeIcon];
|
|
19
24
|
export interface IPromoBadgeProps {
|
|
20
25
|
/** Цвет промо-бэйджа */
|
|
21
26
|
color?: PromoBadgeColorsType;
|
|
22
27
|
/** Размер промо-бэйджа */
|
|
23
28
|
size?: PromoBadgeSizeType;
|
|
29
|
+
/** Иконка промо-бэйджа */
|
|
30
|
+
icon?: PromoBadgeIconType;
|
|
24
31
|
/** Дополнительный класс корневого элемента */
|
|
25
32
|
className?: string;
|
|
26
33
|
/** Дополнительные data-атрибуты к внутренним элементам */
|
|
@@ -1,7 +1,33 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
1
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
3
|
import * as React from 'react';
|
|
3
4
|
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
4
5
|
import "./PromoBadge.css";
|
|
6
|
+
var PersonalIcon = function PersonalIcon(props) {
|
|
7
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
8
|
+
width: 14,
|
|
9
|
+
height: 14,
|
|
10
|
+
viewBox: "0 0 14 14",
|
|
11
|
+
fill: "none"
|
|
12
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
13
|
+
fillRule: "evenodd",
|
|
14
|
+
clipRule: "evenodd",
|
|
15
|
+
d: "M4.287 7.7a.2.2 0 01.193.15l.26 1.036c.053.215.071.278.102.326a.4.4 0 00.12.121c.05.03.112.049.327.103l1.035.258a.2.2 0 010 .387l-1.035.259c-.215.054-.278.072-.326.102a.4.4 0 00-.121.121c-.03.049-.049.112-.103.327l-.259 1.035a.2.2 0 01-.385 0l-.26-1.035c-.053-.216-.072-.278-.103-.327a.397.397 0 00-.12-.12c-.048-.031-.11-.05-.326-.103l-1.035-.259a.2.2 0 01-.151-.193.2.2 0 01.151-.194l1.035-.258c.215-.054.278-.072.326-.103a.398.398 0 00.12-.121c.031-.048.05-.11.104-.326l.259-1.035a.199.199 0 01.192-.15zM8.75 2.45c.146 0 .273.1.309.241l.414 1.657c.086.345.115.445.165.522.05.077.115.143.192.192.077.05.178.08.522.166l1.657.414a.318.318 0 010 .617l-1.657.414c-.344.086-.445.115-.522.165a.636.636 0 00-.192.192c-.05.078-.08.178-.165.523l-.414 1.656a.318.318 0 01-.618 0l-.414-1.656c-.086-.345-.115-.445-.165-.523a.636.636 0 00-.192-.192c-.077-.05-.178-.079-.523-.165l-1.656-.414a.318.318 0 010-.617l1.656-.414c.345-.087.446-.116.523-.165a.636.636 0 00.192-.193c.05-.077.08-.177.165-.522l.414-1.657a.318.318 0 01.309-.24zM4.2 1.4c.058 0 .109.04.123.096l.166.663c.035.138.046.178.066.21.02.03.046.057.077.076.03.02.071.031.209.066l.663.166a.128.128 0 010 .247l-.663.165c-.138.034-.178.047-.21.066a.256.256 0 00-.076.077c-.02.031-.031.071-.066.208l-.166.664a.127.127 0 01-.247 0l-.165-.664c-.034-.137-.047-.177-.066-.208a.254.254 0 00-.077-.077c-.031-.02-.071-.032-.21-.066l-.662-.165a.127.127 0 010-.247l.663-.166c.137-.035.178-.046.209-.066a.257.257 0 00.077-.077c.02-.03.032-.071.066-.209l.165-.663A.128.128 0 014.2 1.4z",
|
|
16
|
+
fill: "url(#PersonalIcon__paint0_linear_30332_1078)"
|
|
17
|
+
}), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("linearGradient", {
|
|
18
|
+
id: "PersonalIcon__paint0_linear_30332_1078",
|
|
19
|
+
x1: 11.873,
|
|
20
|
+
y1: 2.079,
|
|
21
|
+
x2: 6.33,
|
|
22
|
+
y2: 3.363,
|
|
23
|
+
gradientUnits: "userSpaceOnUse"
|
|
24
|
+
}, /*#__PURE__*/React.createElement("stop", {
|
|
25
|
+
stopColor: "#3CB9FF"
|
|
26
|
+
}), /*#__PURE__*/React.createElement("stop", {
|
|
27
|
+
offset: 1,
|
|
28
|
+
stopColor: "#AA5AFF"
|
|
29
|
+
}))));
|
|
30
|
+
};
|
|
5
31
|
export var PromoBadgeColors = {
|
|
6
32
|
BERRY: 'berry',
|
|
7
33
|
BRAND_PURPLE_20: 'brand-purple-20',
|
|
@@ -10,28 +36,42 @@ export var PromoBadgeColors = {
|
|
|
10
36
|
SKY: 'sky',
|
|
11
37
|
FLAMINGO: 'flamingo',
|
|
12
38
|
GRADIENT_PURPLE: 'gradient-purple',
|
|
13
|
-
GRAY: 'gray'
|
|
39
|
+
GRAY: 'gray',
|
|
40
|
+
WHITE: 'white'
|
|
14
41
|
};
|
|
15
42
|
export var PromoBadgeSize = {
|
|
16
43
|
SMALL: 'small',
|
|
17
44
|
MEDIUM: 'medium'
|
|
18
45
|
};
|
|
46
|
+
export var PromoBadgeIcon = {
|
|
47
|
+
PERSONAL: 'personal'
|
|
48
|
+
};
|
|
49
|
+
var iconMap = _defineProperty({}, PromoBadgeIcon.PERSONAL, PersonalIcon);
|
|
19
50
|
var cn = cnCreate('mfui-9-promo-badge');
|
|
20
51
|
var PromoBadge = function PromoBadge(_ref) {
|
|
21
52
|
var _ref$color = _ref.color,
|
|
22
53
|
color = _ref$color === void 0 ? PromoBadgeColors.SKY : _ref$color,
|
|
23
54
|
_ref$size = _ref.size,
|
|
24
55
|
size = _ref$size === void 0 ? PromoBadgeSize.MEDIUM : _ref$size,
|
|
56
|
+
icon = _ref.icon,
|
|
25
57
|
className = _ref.className,
|
|
26
58
|
children = _ref.children,
|
|
27
59
|
dataAttrs = _ref.dataAttrs;
|
|
60
|
+
var IconComponent = icon ? iconMap[icon] : null;
|
|
28
61
|
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
29
62
|
className: cn({
|
|
30
63
|
color: color,
|
|
31
|
-
size: size
|
|
64
|
+
size: size,
|
|
65
|
+
icon: !!IconComponent
|
|
32
66
|
}, className)
|
|
33
|
-
}), /*#__PURE__*/React.createElement("
|
|
34
|
-
className: cn('
|
|
67
|
+
}), IconComponent && /*#__PURE__*/React.createElement("div", {
|
|
68
|
+
className: cn('icon', {
|
|
69
|
+
size: size
|
|
70
|
+
})
|
|
71
|
+
}, /*#__PURE__*/React.createElement(IconComponent, null)), /*#__PURE__*/React.createElement("span", {
|
|
72
|
+
className: cn('text', {
|
|
73
|
+
size: size
|
|
74
|
+
})
|
|
35
75
|
}, children));
|
|
36
76
|
};
|
|
37
77
|
export default PromoBadge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}.mfui-9-chip{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:inherit;font-size:15px;font-weight:500;line-height:24px;-webkit-box-align:center;-ms-flex-align:center;align-items:center
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-chip{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:inherit;font-size:15px;font-weight:500;line-height:24px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;border:none;border-radius:20px;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);justify-content:center;overflow:hidden;padding:8px 20px;text-align:center;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;-webkit-transition:background-color .3s,color .3s;transition:background-color .3s,color .3s}.mfui-9-chip:focus-visible{-webkit-animation:focus-outline-shrink .3s linear forwards;animation:focus-outline-shrink .3s linear forwards;outline-offset:-4px}@-webkit-keyframes focus-outline-shrink{0%{outline:0 solid var(--137C)}to{outline:4px solid var(--137C)}}@keyframes focus-outline-shrink{0%{outline:0 solid var(--137C)}to{outline:4px solid var(--137C)}}.mfui-9-chip:focus{outline:none}@media screen and (max-width:767px){.mfui-9-chip{padding:4px 12px}}.mfui-9-chip__inner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mfui-9-chip__counter{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--spbSky3);margin-left:6px}@media screen and (max-width:767px){.mfui-9-chip__counter{margin-left:4px}}.mfui-9-chip__icon,.mfui-9-chip__icon-arrow{display:block;margin:2px 0;max-height:20px;min-width:20px;width:20px}.mfui-9-chip__icon svg,.mfui-9-chip__icon-arrow svg{display:block;height:100%;-webkit-transition:fill .3s;transition:fill .3s;width:100%;fill:var(--content)}.mfui-9-chip__icon-arrow{-webkit-transition:-webkit-transform .6s;transition:-webkit-transform .6s;transition:transform .6s;transition:transform .6s,-webkit-transform .6s}.mfui-9-chip_with-icon .mfui-9-chip__inner{margin-left:6px}@media screen and (max-width:767px){.mfui-9-chip_with-icon .mfui-9-chip__inner{margin-left:4px}}.mfui-9-chip_with-arrow{padding-right:14px}@media screen and (max-width:767px){.mfui-9-chip_with-arrow{padding-right:6px}}.mfui-9-chip_type_filter .mfui-9-chip__counter{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;border-radius:32px;font-size:12px;height:24px;justify-content:center;line-height:14px;min-width:24px;padding:0 4px 2px}@media screen and (min-width:768px){.mfui-9-chip_type_filter .mfui-9-chip__counter{height:32px;min-width:32px;padding-left:6px;padding-right:6px}}.mfui-9-chip_type_default .mfui-9-chip__icon svg{fill:var(--spbSky3)}.mfui-9-chip_theme_white{background-color:var(--spbSky0)}.mfui-9-chip_theme_gray,.mfui-9-chip_theme_white.mfui-9-chip_opened,.mfui-9-chip_theme_white:hover{background-color:var(--spbSky1)}.mfui-9-chip_theme_gray.mfui-9-chip_opened,.mfui-9-chip_theme_gray:hover{background-color:var(--spbSky2)}.mfui-9-chip_opened .mfui-9-chip__icon-arrow{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.mfui-9-chip_disabled,.mfui-9-chip_disabled:hover{background-color:var(--spbSky0);color:var(--spbSky3);cursor:default;pointer-events:none}.mfui-9-chip_disabled .mfui-9-chip__icon svg,.mfui-9-chip_disabled:hover .mfui-9-chip__icon svg{fill:var(--spbSky3)}.mfui-9-chip_disabled .mfui-9-chip__icon-arrow svg,.mfui-9-chip_disabled:hover .mfui-9-chip__icon-arrow svg{fill:var(--spbSky2)}.mfui-9-chip_disabled .mfui-9-chip__counter,.mfui-9-chip_disabled:hover .mfui-9-chip__counter{color:var(--spbSky2)}.mfui-9-chip_disabled.mfui-9-chip_theme_gray,.mfui-9-chip_disabled.mfui-9-chip_theme_gray:hover{background-color:var(--spbSky1)}.mfui-9-chip_checked:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter){background-color:var(--night);color:var(--stcWhite)}.mfui-9-chip_checked:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter) svg{fill:var(--stcWhite)}.mfui-9-chip_checked:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter) .mfui-9-chip__counter{color:var(--stcWhite)}.mfui-9-chip_checked.mfui-9-chip_color_black:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter){background-color:var(--content);color:var(--base)}.mfui-9-chip_checked.mfui-9-chip_color_black:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter) svg{fill:var(--base)}.mfui-9-chip_checked.mfui-9-chip_color_black:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter) .mfui-9-chip__counter{color:var(--base)}.mfui-9-chip_checked.mfui-9-chip_type_filter.mfui-9-chip_with-counter{padding-bottom:4px;padding-right:4px;padding-top:4px}.mfui-9-chip_checked.mfui-9-chip_type_filter .mfui-9-chip__counter{background-color:var(--night);color:var(--stcWhite)}.mfui-9-chip_checked.mfui-9-chip_type_filter.mfui-9-chip_color_black .mfui-9-chip__counter{background-color:var(--content);color:var(--base)}
|
|
@@ -11,6 +11,11 @@ export declare const ChipThemes: {
|
|
|
11
11
|
readonly GRAY: "gray";
|
|
12
12
|
};
|
|
13
13
|
export type ChipsThemeType = (typeof ChipThemes)[keyof typeof ChipThemes];
|
|
14
|
+
export declare const ChipType: {
|
|
15
|
+
readonly DEFAULT: "default";
|
|
16
|
+
readonly FILTER: "filter";
|
|
17
|
+
};
|
|
18
|
+
export type ChipTypeType = (typeof ChipType)[keyof typeof ChipType];
|
|
14
19
|
export declare const ChipArrow: {
|
|
15
20
|
readonly UP: "up";
|
|
16
21
|
readonly DOWN: "down";
|
|
@@ -21,20 +26,26 @@ export interface IChipProps {
|
|
|
21
26
|
id: ChipIdType;
|
|
22
27
|
/** Заголовок */
|
|
23
28
|
title?: string;
|
|
29
|
+
/** Тип */
|
|
30
|
+
type?: ChipTypeType;
|
|
24
31
|
/** Цвет активного элемента компонента */
|
|
25
32
|
color?: ChipColorsType;
|
|
26
|
-
/**
|
|
33
|
+
/** Цветовая тема */
|
|
27
34
|
theme?: ChipsThemeType;
|
|
28
|
-
/**
|
|
35
|
+
/** Активное состояние */
|
|
29
36
|
checked?: boolean;
|
|
37
|
+
/** Открытое состояние */
|
|
38
|
+
opened?: boolean;
|
|
30
39
|
/** Отключенное состояние */
|
|
31
40
|
disabled?: boolean;
|
|
32
41
|
/** Иконка */
|
|
33
42
|
icon?: JSX.Element;
|
|
34
43
|
/** Значение счетчика */
|
|
35
44
|
counterValue?: number;
|
|
36
|
-
/** Стрелка вверх или вниз */
|
|
45
|
+
/** DEPRECATED Стрелка вверх или вниз (Используйте opened и showArrow) */
|
|
37
46
|
arrow?: ChipArrowType;
|
|
47
|
+
/** Показать стрелку */
|
|
48
|
+
showArrow?: boolean;
|
|
38
49
|
/** Обработчик нажатия */
|
|
39
50
|
onClick?: (e: React.SyntheticEvent<EventTarget>, id?: ChipIdType) => void;
|
|
40
51
|
/** Дочерние элементы */
|
|
@@ -2,6 +2,13 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
4
4
|
import "./Chip.css";
|
|
5
|
+
var TurnOn = function TurnOn(props) {
|
|
6
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
7
|
+
viewBox: "0 0 20 20"
|
|
8
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
9
|
+
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"
|
|
10
|
+
}));
|
|
11
|
+
};
|
|
5
12
|
var ArrowDown = function ArrowDown(props) {
|
|
6
13
|
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
7
14
|
viewBox: "0 0 20 20"
|
|
@@ -24,6 +31,11 @@ export var ChipThemes = {
|
|
|
24
31
|
WHITE: 'white',
|
|
25
32
|
GRAY: 'gray'
|
|
26
33
|
};
|
|
34
|
+
export var ChipType = {
|
|
35
|
+
DEFAULT: 'default',
|
|
36
|
+
FILTER: 'filter'
|
|
37
|
+
};
|
|
38
|
+
// DEPRECATED -------------------------------------------------------
|
|
27
39
|
export var ChipArrow = {
|
|
28
40
|
UP: 'up',
|
|
29
41
|
DOWN: 'down'
|
|
@@ -32,17 +44,22 @@ var cn = cnCreate('mfui-9-chip');
|
|
|
32
44
|
var Chip = function Chip(_ref) {
|
|
33
45
|
var id = _ref.id,
|
|
34
46
|
title = _ref.title,
|
|
47
|
+
_ref$type = _ref.type,
|
|
48
|
+
type = _ref$type === void 0 ? 'default' : _ref$type,
|
|
35
49
|
_ref$color = _ref.color,
|
|
36
50
|
color = _ref$color === void 0 ? 'default' : _ref$color,
|
|
37
51
|
_ref$theme = _ref.theme,
|
|
38
52
|
theme = _ref$theme === void 0 ? 'white' : _ref$theme,
|
|
39
53
|
_ref$checked = _ref.checked,
|
|
40
54
|
checked = _ref$checked === void 0 ? false : _ref$checked,
|
|
55
|
+
_ref$opened = _ref.opened,
|
|
56
|
+
opened = _ref$opened === void 0 ? false : _ref$opened,
|
|
41
57
|
_ref$disabled = _ref.disabled,
|
|
42
58
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
43
59
|
icon = _ref.icon,
|
|
44
60
|
counterValue = _ref.counterValue,
|
|
45
61
|
arrow = _ref.arrow,
|
|
62
|
+
showArrow = _ref.showArrow,
|
|
46
63
|
onClick = _ref.onClick,
|
|
47
64
|
children = _ref.children,
|
|
48
65
|
className = _ref.className,
|
|
@@ -51,6 +68,9 @@ var Chip = function Chip(_ref) {
|
|
|
51
68
|
dataAttrs = _ref.dataAttrs,
|
|
52
69
|
rootRef = _ref.rootRef;
|
|
53
70
|
var checkedClass = checked ? classes.checked : undefined;
|
|
71
|
+
var filterIcon = type === 'filter' ? /*#__PURE__*/React.createElement(TurnOn, null) : undefined;
|
|
72
|
+
var finalIcon = icon || filterIcon;
|
|
73
|
+
var content = children || title;
|
|
54
74
|
var handleClick = React.useCallback(function (e) {
|
|
55
75
|
onClick === null || onClick === void 0 ? void 0 : onClick(e, id);
|
|
56
76
|
}, [onClick, id]);
|
|
@@ -58,10 +78,14 @@ var Chip = function Chip(_ref) {
|
|
|
58
78
|
type: "button",
|
|
59
79
|
className: cn({
|
|
60
80
|
color: color,
|
|
81
|
+
type: type,
|
|
61
82
|
theme: theme,
|
|
62
83
|
checked: checked,
|
|
84
|
+
opened: opened,
|
|
63
85
|
disabled: disabled,
|
|
64
|
-
'with-
|
|
86
|
+
'with-arrow': !!arrow || showArrow,
|
|
87
|
+
'with-counter': !!counterValue,
|
|
88
|
+
'with-icon': !!finalIcon
|
|
65
89
|
}, [className, classes.root, checkedClass])
|
|
66
90
|
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
67
91
|
disabled: disabled,
|
|
@@ -69,14 +93,16 @@ var Chip = function Chip(_ref) {
|
|
|
69
93
|
ref: rootRef
|
|
70
94
|
}, checked && {
|
|
71
95
|
tabIndex: -1
|
|
72
|
-
}), !!
|
|
96
|
+
}), !!finalIcon && /*#__PURE__*/React.createElement("span", _extends({
|
|
73
97
|
className: cn('icon', [classes.icon])
|
|
74
|
-
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.icon)),
|
|
98
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.icon)), finalIcon), !!content && /*#__PURE__*/React.createElement("span", _extends({
|
|
75
99
|
className: cn('inner', [classes.inner])
|
|
76
|
-
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.inner)),
|
|
100
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.inner)), content), !!counterValue && /*#__PURE__*/React.createElement("span", _extends({
|
|
77
101
|
className: cn('counter', [classes.counter])
|
|
78
102
|
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.counter)), counterValue), !!arrow && /*#__PURE__*/React.createElement("div", _extends({
|
|
79
103
|
className: cn('icon-arrow', [classes.arrow])
|
|
80
|
-
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrow)), arrow === 'up' ? /*#__PURE__*/React.createElement(ArrowUp, null) : /*#__PURE__*/React.createElement(ArrowDown, null))
|
|
104
|
+
}, 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", _extends({
|
|
105
|
+
className: cn('icon-arrow', [classes.arrow])
|
|
106
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrow)), /*#__PURE__*/React.createElement(ArrowDown, null)));
|
|
81
107
|
};
|
|
82
108
|
export 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,29 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import "core-js/modules/es.symbol.js";
|
|
3
|
+
import "core-js/modules/es.array.index-of.js";
|
|
4
|
+
var __rest = this && this.__rest || function (s, e) {
|
|
5
|
+
var t = {};
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
7
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
import { cnCreate } from '@megafon/ui-helpers';
|
|
14
|
+
import Chip from "./Chip";
|
|
15
|
+
import "./ChipBadge.css";
|
|
16
|
+
var cn = cnCreate('mfui-9-chip-badge');
|
|
17
|
+
var ChipBadge = function ChipBadge(_a) {
|
|
18
|
+
var badge = _a.badge,
|
|
19
|
+
className = _a.className,
|
|
20
|
+
chipProps = __rest(_a, ["badge", "className"]);
|
|
21
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
22
|
+
className: cn()
|
|
23
|
+
}, !!badge && /*#__PURE__*/React.createElement("div", {
|
|
24
|
+
className: cn('badge')
|
|
25
|
+
}, badge), /*#__PURE__*/React.createElement(Chip, _extends({
|
|
26
|
+
className: cn('chip', [className])
|
|
27
|
+
}, chipProps)));
|
|
28
|
+
};
|
|
29
|
+
export 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
|
/** Дополнительные классы для внутренних элементов */
|
|
@@ -16,7 +16,7 @@ import * as React from 'react';
|
|
|
16
16
|
import { breakpoints, cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
17
17
|
import throttle from 'lodash.throttle';
|
|
18
18
|
import throttleTime from "../../../constants/throttleTime";
|
|
19
|
-
import
|
|
19
|
+
import ChipBadge from "./ChipBadge";
|
|
20
20
|
import ChipsDropdown from "./components/ChipsDropdown/ChipsDropdown";
|
|
21
21
|
import ChipsScrollPanel from "./components/ChipsScrollPanel/ChipsScrollPanel";
|
|
22
22
|
import "./Chips.css";
|
|
@@ -100,7 +100,7 @@ var Chips = function Chips(_ref) {
|
|
|
100
100
|
var id = _a.id,
|
|
101
101
|
children = _a.children,
|
|
102
102
|
rest = __rest(_a, ["id", "children"]);
|
|
103
|
-
return /*#__PURE__*/React.createElement(
|
|
103
|
+
return /*#__PURE__*/React.createElement(ChipBadge, _extends({
|
|
104
104
|
key: id,
|
|
105
105
|
id: id,
|
|
106
106
|
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;
|
|
@@ -6,7 +6,7 @@ import "core-js/modules/es.object.to-string.js";
|
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
8
8
|
import Dropdown from "../../../../Dropdown/Dropdown";
|
|
9
|
-
import
|
|
9
|
+
import ChipBadge from "../../ChipBadge";
|
|
10
10
|
import "./ChipsDropdown.css";
|
|
11
11
|
var cn = cnCreate('mfui-9-chips-dropdown');
|
|
12
12
|
var ChipsDropdown = function ChipsDropdown(_ref) {
|
|
@@ -22,7 +22,6 @@ var ChipsDropdown = function ChipsDropdown(_ref) {
|
|
|
22
22
|
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
|
23
23
|
dataAttrs = _ref.dataAttrs,
|
|
24
24
|
onClick = _ref.onClick;
|
|
25
|
-
var _a;
|
|
26
25
|
var _React$useState = React.useState(false),
|
|
27
26
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
28
27
|
isDropdownOpen = _React$useState2[0],
|
|
@@ -65,17 +64,14 @@ var ChipsDropdown = function ChipsDropdown(_ref) {
|
|
|
65
64
|
return /*#__PURE__*/React.createElement("div", _extends({
|
|
66
65
|
className: cn([classes.root]),
|
|
67
66
|
ref: dropdownRef
|
|
68
|
-
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement(
|
|
67
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement(ChipBadge, _extends({}, currentItem, {
|
|
69
68
|
className: cn('button', [currentItem.className]),
|
|
70
|
-
classes:
|
|
71
|
-
arrow: cn('arrow', {
|
|
72
|
-
open: isDropdownOpen
|
|
73
|
-
}, [(_a = currentItem.classes) === null || _a === void 0 ? void 0 : _a.arrow])
|
|
74
|
-
}),
|
|
69
|
+
classes: currentItem.classes,
|
|
75
70
|
color: color,
|
|
76
71
|
theme: theme,
|
|
72
|
+
opened: isDropdownOpen,
|
|
77
73
|
checked: !!currentItem.id,
|
|
78
|
-
|
|
74
|
+
showArrow: true,
|
|
79
75
|
onClick: handleOpenItemList
|
|
80
76
|
})), /*#__PURE__*/React.createElement(Dropdown, {
|
|
81
77
|
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;
|
|
@@ -13,7 +13,7 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
13
13
|
};
|
|
14
14
|
import * as React from 'react';
|
|
15
15
|
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
16
|
-
import
|
|
16
|
+
import ChipBadge from "../../ChipBadge";
|
|
17
17
|
import "./ChipsScrollPanel.css";
|
|
18
18
|
var HALF_DIVIDER = 2;
|
|
19
19
|
var cn = cnCreate('mfui-9-chips-scroll-panel');
|
|
@@ -75,7 +75,7 @@ var ChipsScrollPanel = function ChipsScrollPanel(_ref) {
|
|
|
75
75
|
return /*#__PURE__*/React.createElement("div", {
|
|
76
76
|
key: id,
|
|
77
77
|
className: cn('slide')
|
|
78
|
-
}, /*#__PURE__*/React.createElement(
|
|
78
|
+
}, /*#__PURE__*/React.createElement(ChipBadge, _extends({}, rest, {
|
|
79
79
|
id: id,
|
|
80
80
|
checked: checked,
|
|
81
81
|
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}}
|
|
@@ -9,7 +9,7 @@ import usePrevious from "../../hooks/usePrevious";
|
|
|
9
9
|
import useResolution from "../../hooks/useResolution";
|
|
10
10
|
import ModalDesktop from "./_ModalDesktop/ModalDesktop";
|
|
11
11
|
import ModalMobile from "./_ModalMobile/ModalMobile";
|
|
12
|
-
import {
|
|
12
|
+
import { changeBodyStyles, getCorrectMaxHeight } from "./utils/utils";
|
|
13
13
|
import "./Modal.css";
|
|
14
14
|
var MOBILE_BIG_START = breakpoints.MOBILE_BIG_START;
|
|
15
15
|
var HEIGHT_TRANSITION_PROPERTY = 'height';
|
|
@@ -29,7 +29,6 @@ export var MODAL_TRANSITIONS_STEPS_ENUM;
|
|
|
29
29
|
MODAL_TRANSITIONS_STEPS_ENUM["MOVE_END_STEP"] = "move-end-step";
|
|
30
30
|
MODAL_TRANSITIONS_STEPS_ENUM["END_STEP"] = "end-step";
|
|
31
31
|
})(MODAL_TRANSITIONS_STEPS_ENUM || (MODAL_TRANSITIONS_STEPS_ENUM = {}));
|
|
32
|
-
var bodyCn = cnCreate('mfui-9-modal-open-body');
|
|
33
32
|
var cn = cnCreate('mfui-9-modal');
|
|
34
33
|
var Modal = function Modal(_ref) {
|
|
35
34
|
var className = _ref.className,
|
|
@@ -164,9 +163,13 @@ var Modal = function Modal(_ref) {
|
|
|
164
163
|
handleSetScrollContentMaxHeight();
|
|
165
164
|
}, [isEnabledNativeScroll, handleSetScrollContentMaxHeight]);
|
|
166
165
|
var handleAfterOpen = function handleAfterOpen() {
|
|
166
|
+
changeBodyStyles(true);
|
|
167
167
|
handleSetStyles();
|
|
168
168
|
onAfterModalOpen === null || onAfterModalOpen === void 0 ? void 0 : onAfterModalOpen();
|
|
169
169
|
};
|
|
170
|
+
var handleAfterClose = function handleAfterClose() {
|
|
171
|
+
changeBodyStyles(false);
|
|
172
|
+
};
|
|
170
173
|
var handlePopupClose = function handlePopupClose() {
|
|
171
174
|
setTransitionStep(MODAL_TRANSITIONS_STEPS_ENUM.END_STEP);
|
|
172
175
|
};
|
|
@@ -183,7 +186,6 @@ var Modal = function Modal(_ref) {
|
|
|
183
186
|
};
|
|
184
187
|
React.useEffect(function () {
|
|
185
188
|
setIsPopupOpened(isOpened);
|
|
186
|
-
changeBodyPadding(isOpened);
|
|
187
189
|
if (!isOpened) {
|
|
188
190
|
setContainerWrapHeight(undefined);
|
|
189
191
|
}
|
|
@@ -243,14 +245,19 @@ var Modal = function Modal(_ref) {
|
|
|
243
245
|
}, [isEnabledNativeScroll, isFooterPropsDiff, isRecalculateHeight, isHeaderPropsDiff, handleSetScrollContentMaxHeight]);
|
|
244
246
|
React.useEffect(function () {
|
|
245
247
|
return function () {
|
|
246
|
-
setIsPopupOpened(false);
|
|
247
|
-
document.body.style.paddingRight = '';
|
|
248
248
|
if (!containerInnerRef.current || !resizeObserver.current) {
|
|
249
249
|
return;
|
|
250
250
|
}
|
|
251
251
|
resizeObserver.current.unobserve(containerInnerRef.current);
|
|
252
252
|
};
|
|
253
253
|
}, []);
|
|
254
|
+
React.useEffect(function () {
|
|
255
|
+
return function () {
|
|
256
|
+
if (isOpened) {
|
|
257
|
+
changeBodyStyles(false);
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
}, [isOpened]);
|
|
254
261
|
var contextProps = {
|
|
255
262
|
classes: classes,
|
|
256
263
|
dataAttrs: dataAttrs,
|
|
@@ -305,7 +312,7 @@ var Modal = function Modal(_ref) {
|
|
|
305
312
|
'native-scroll': isEnabledNativeScroll
|
|
306
313
|
}, [className]),
|
|
307
314
|
overlayClassName: cn('overlay', classes === null || classes === void 0 ? void 0 : classes.overlay),
|
|
308
|
-
bodyOpenClassName:
|
|
315
|
+
bodyOpenClassName: classes === null || classes === void 0 ? void 0 : classes.bodyOpen,
|
|
309
316
|
isOpen: isPopupOpened,
|
|
310
317
|
ariaHideApp: hideAriaApp,
|
|
311
318
|
contentLabel: contentLabel,
|
|
@@ -313,7 +320,8 @@ var Modal = function Modal(_ref) {
|
|
|
313
320
|
contentRef: getModalContentRef,
|
|
314
321
|
overlayRef: handleGetModalOverlayRef,
|
|
315
322
|
onRequestClose: handlePopupClose,
|
|
316
|
-
onAfterOpen: handleAfterOpen
|
|
323
|
+
onAfterOpen: handleAfterOpen,
|
|
324
|
+
onAfterClose: handleAfterClose
|
|
317
325
|
}, renderContent());
|
|
318
326
|
};
|
|
319
327
|
export 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;
|
|
@@ -48,15 +48,19 @@ export var getCorrectMaxHeight = function getCorrectMaxHeight(_ref) {
|
|
|
48
48
|
var correctMaxHeight = isStickyFooter ? maxHeightResize - popupFooterHeight : maxHeightResize;
|
|
49
49
|
return correctMaxHeight;
|
|
50
50
|
};
|
|
51
|
-
export var
|
|
51
|
+
export var changeBodyStyles = function changeBodyStyles(isOpened) {
|
|
52
52
|
var windowWidth = window.innerWidth;
|
|
53
53
|
var documentClientWidth = document.documentElement.clientWidth;
|
|
54
54
|
var scrollBarWidth = windowWidth - documentClientWidth;
|
|
55
55
|
var bodyEl = document.body;
|
|
56
56
|
if (!isOpened) {
|
|
57
57
|
bodyEl.style.paddingRight = '';
|
|
58
|
+
bodyEl.style.height = '';
|
|
59
|
+
bodyEl.style.overflow = '';
|
|
58
60
|
return;
|
|
59
61
|
}
|
|
62
|
+
bodyEl.style.height = '100%';
|
|
63
|
+
bodyEl.style.overflow = 'hidden';
|
|
60
64
|
if (scrollBarWidth === 0) {
|
|
61
65
|
return;
|
|
62
66
|
}
|
|
@@ -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)}
|